安恒5月赛web题目做题记录

奇怪的恐龙特性

这是一道代码审计的题目,又发现了一个我以前没见过的知识点,可以详细看看这个链接
https://wooyun.shuimugan.com/bug/view?bug_no=64792
安恒5月赛web题目做题记录_第1张图片
从上面可以看出,简单点解释就是当代码中存在$_REQUEST['user_id']里面类似的参数的时候,我们在url上可以这样a.php?user.id传参去进行绕过,这样进去之后也能表示$_REQUEST['user_id']的值,同样可以绕过的符号还有+,[ 等,应该说是php的一个小特性,上面讲的很清楚了,

 
highlight_file(__FILE__); 
ini_set("display_error", false);  
error_reporting(0);  
$str = isset($_GET['A_A'])?$_GET['A_A']:'A_A'; 
if (strpos($_SERVER['QUERY_STRING'], "A_A") !==false) { 
    echo 'A_A,have fun'; 
} 
elseif ($str<9999999999) { 
    echo 'A_A,too small'; 
} 
elseif ((string)$str>0) { 
    echo 'A_A,too big'; 
} 
else{ 
    echo file_get_contents('flag.php'); 

} 

 ?> 

阅读代码发现,首先第一步要绕过A_A这个符号,如果出现这个符号他就会显示A_A,have fun,就不能继续往下面执行到file_get_contents('flag.php')了,但是我们发送get参数的时候又必须要发送,因此我们就用到刚才的知识点,我们可以用A.A或者是A+A去传参去绕过。
下面的代码就是常规的数字绕过了,但这里也用到了一个trick,就是无论你的数字多大,对于数组而言总是比数组小,下面是操作
安恒5月赛web题目做题记录_第2张图片
所以说,我们可以利用数组去绕过$str<9999999999的特性,下面一个判断是强制转化为字符串在与数字比较的判断,这就是平常操作很多的弱类型了,直接让参数等于admin就可以了,因为“admin”== 0 ,结果是true,直接等于0绕过即可,所以这题的payload

http://101.71.29.5:10007/?A+A[]=admin

不能注册的admin

这一个题目利用了Windows不区分大小写特性的特点
右键发现发现有一段代码很可疑

id = $("#uid").val();
$(document).ready(function(){
    $("#uid").blur(function(){
        if(id !== ""|| !id){
            $.ajax({
            url:"json.php",type:'post',data:{'id':id},success:function(d){
                    var data = eval('(' +d +')');
                    if(data['id'] !='undefined' ||data['id'] !="" ||data['id']!=null){
                        alert('用户名已存在!');
                    }
                }
            })
        }
    })
})

仔细查看代码发现存在json.php还有post一个id参数,到后面看了解题的视频发现其实这里还能用get方式传参,我们就进去json.php页面查看一下,竟然题目说了要admin就传一个admin进去,发现有回显{'id':'1','title':'admin'},尝试一下是否存在sql注入漏洞,在尝试双引号的时候发现有报错信息,然后详细一点测试json.php?id=admin" or 1=1%23,发现有检测,这就很尬,后来还是看了视频才知道是从头部信息哪里发现的服务器是Windows的,这样就可以用Windows的大小写特性去绕过,就可以尝试一下json.phP?id=admin" or 1=1%23,重新回显{'id':'1','title':'admin'},这就可以慢慢注入了啊,接下来就是sqlmap一把过就行。。。。说实话我是真想不到,还是要虚心学习啊

python sqlmap.py -u "http://101.71.29.5:10006/json.Php?id=admin"  --threads 10 -D 5monthweb -T article -C content --dump

最后得到结果
安恒5月赛web题目做题记录_第3张图片

一个hackerone的有趣的漏洞的复现的题目

这题考了.git源码泄露,把源码拿下来以后打算第二天做。。。这个题目第二天做的时候因为平台维护不能复现了,下次还是早点做吧。。还得继续努力。。。。。

安恒5月赛web题目做题记录_第4张图片

你可能感兴趣的:(CTF,Web)