zoukankan      html  css  js  c++  java
  • BUGKU web刷题记录

    web1

    直接F12查看源码,得到flag。

    web2

    直接输入验证码答案,长度被限制,修改可输入长度,提交后得到flag。

    web3

    $what=$_GET['what'];
    echo $what;
    if($what=='flag')
    echo 'flag{****}';
    

    在 PHP 中,预定义的 $_GET 变量用于收集来自 method="get" 的表单中的值。在 HTML 表单中使用 method="get" 时,所有的变量名和值都会显示在 URL 中。直接构造URL后添加?what=flag

    web4

    $what=$_POST['what'];
    echo $what;
    if($what=='flag')
    echo 'flag{****}';
    

    在 PHP 中,预定义的 $_POST 变量用于收集来自 method="post" 的表单中的值。从带有 POST 方法的表单发送的信息,对任何人都是不可见的(不会显示在浏览器的地址栏),并且对发送信息的量也没有限制。利用HackBar插件进行POST传参,传递what=flag

    web5

    $num=$_GET['num'];
    if(!is_numeric($num))
    {
    	echo $num;
    	if($num==1)
    	echo'flag{******}';
    }
    

    is_numeric() 函数用于检测变量是否为数字或数字字符串。如果指定的变量是数字和数字字符串则返回 TRUE,否则返回 FALSE,注意浮点型返回空值,即 FALSE。当碰到16进制数的时候,也会判断成数字。数字后面加上%00截断,is_numeric()函数就不能识别为数字。

    is_numeric()函数对于空字符%00,无论是%00放在前后都可以判断为非数值。

    松散比较:使用两个等号 == 比较,只比较值,不比较类型。

    严格比较:用三个等号 === 比较,除了比较值,也比较类型。

    构造num=1%00或者num=1a

    web6

    F12查看源码,js脚本最后有unicode编码,解码得到flag。

    web7

    F12查看源码,刷新过程中可以看到flag位置,可以录屏然后看回放;

    使用burp抓包,多试几次就能找到flag;

    禁用网页的js,F5手动刷新直到找到flag。

    web8

    本地文件包含。构造?hello=file("flag.php")

    web9

    isset() 函数用于检测变量是否已设置并且非 NULL。

    preg_match() 函数用于执行一个正则表达式匹配。正则表达式"/^w+(/" ^表示开始, w表示任意一个单词字符,即[a-zA-Z0-9_] ,+将前面的字符匹配一次或多次,)表示结尾,即要求整个字符串都是单词字符。

    超级全局变量在PHP 4.1.0之后被启用, 是PHP系统中自带的变量,在一个脚本的全部作用域中都可用。$GLOBALS包含正在执行脚本所有超级全局变量的引用内容。

    构造payload ?args=GLOBALS

    web10

    查看消息头。

    web11

    提示有后门,使用dirsearch脚本扫描目录,发现后台登录地址shell.php,使用burp的密码爆破功能,爆破出密码hack

    web12

    测试输入账号密码,发现IP被禁,使用burp抓包,在请求头加上X-Forwarded-For: 127.0.0.1,成功访问。F12查看源码,发现字符串base64解码,得到密码:test123,尝试使用默认账号admin登录,登陆成功。

    web13

    F12查看源码,与JavaScript有关,将源码解密得到checkSubmit()函数

    var p1 = '%66%75%6e%63%74%69%6f%6e%20%63%68%65%63%6b%53%75%62%6d%69%74%28%29%7b%76%61%72%20%61%3d%64%6f%63%75%6d%65%6e%74%2e%67%65%74%45%6c%65%6d%65%6e%74%42%79%49%64%28%22%70%61%73%73%77%6f%72%64%22%29%3b%69%66%28%22%75%6e%64%65%66%69%6e%65%64%22%21%3d%74%79%70%65%6f%66%20%61%29%7b%69%66%28%22%36%37%64%37%30%39%62%32%62';
    var p2 = '%61%61%36%34%38%63%66%36%65%38%37%61%37%31%31%34%66%31%22%3d%3d%61%2e%76%61%6c%75%65%29%72%65%74%75%72%6e%21%30%3b%61%6c%65%72%74%28%22%45%72%72%6f%72%22%29%3b%61%2e%66%6f%63%75%73%28%29%3b%72%65%74%75%72%6e%21%31%7d%7d%64%6f%63%75%6d%65%6e%74%2e%67%65%74%45%6c%65%6d%65%6e%74%42%79%49%64%28%22%6c%65%76%65%6c%51%75%65%73%74%22%29%2e%6f%6e%73%75%62%6d%69%74%3d%63%68%65%63%6b%53%75%62%6d%69%74%3b';
    console.log(unescape(p1) + unescape('%35%34%61%61%32' + p2));
    
    function checkSubmit()
    {
    	var a=document.getElementById("password");
    	if("undefined"!=typeof a)
    	{
    		if("67d709b2b54aa2aa648cf6e87a7114f1"==a.value)
    	    return!0;
    		alert("Error");
    		a.focus();
    		return!1;	
    	}
    }
    document.getElementById("levelQuest").onsubmit=checkSubmit;
    

    提交67d709b2b54aa2aa648cf6e87a7114f1得到flag。

    web14

    远程文件包含,利用 PHP 流 filter构造?file=php://filter/convert.base64-encode/resource=index.php

    web15

    用字典生成器生成5位数的纯数字密码,使用burp进行密码爆破,根据返回长度判断密码是否正确,得到五位数密码12468.

  • 相关阅读:
    【译】SQL Server误区30日谈Day3即时文件初始化特性可以在SQL Server中开启和关闭
    有关TSQL的10个好习惯
    【译】SQL Server误区30日谈Day6有关NULL位图的三个误区
    一次由重复索引导致的问题
    【译】SQL Server误区30日谈Day2DBCC CHECKDB会导致阻塞
    【译】SQL Server误区30日谈Day1正在运行的事务在服务器故障转移后继续执行
    CodeFileBaseClass 属性
    Mako 模板系统文档翻译(2) 语法
    终于搞定了 django 的 ajax 方式上传图片
    ASP.NET Ajax 调试技巧:用 FireBug 调试 UpdatePanel 不更新问题
  • 原文地址:https://www.cnblogs.com/xgcl/p/14493038.html
Copyright © 2011-2022 走看看