知识点
password='".md5($pass,true)."'
解题
360截图17290429273651.PNG
360截图17891228296729.PNG
这里可以看到是通过get参数进行传参,但是这里也没有其他的提示,尝试传统的抓包,等分析没有得到有用信息,查看大佬wp,知道了其中调用了这样的函数
password='".md5($pass,true)."'
就是将你输入的命令进行MD5加密后在输出,接下就根据大佬给的提示查询ffifdyop,这里是因为ffifdyop 这个字符串被 md5 哈希了之后会变成 276f722736c95d99e921722cf9ed621c,这个字符串前几位刚好是 ‘ or ‘6,而 Mysql 刚好又会吧 hex 转成 ascii 解释,因此拼接之后的形式是1select * from 'admin' where password='' or '6xxxxx'(大佬是真的强)。
查询抓包
360截图17571114383442.PNG
可以看到这里提示让我们去看一下levels91.php,直接在burp里修改
360截图18141222484895.PNG
可以看到如下要求,让我们在该页面下利用get传a,b两个参数,并且还有两个判断a不等于b,a的MD5值是否等于b的MD5值,那么接下来就可以利用此来构造payload
?a[]=1&b[]=2
360截图16570201113944.PNG
得到想要的结果访问提示的levell14.php界面
扫描二维码关注公众号,回复:
11489334 查看本文章
<?php
error_reporting(0);
include "flag.php";//包含了flag.php,那么flag必然在这里
highlight_file(__FILE__);
if($_POST['param1']!==$_POST['param2']&&md5($_POST['param1'])===md5($_POST['param2'])){
echo $flag;//如果post传的两个参数param1和param2的值不同并且MD5值相同就执行flag(MD5绕过就是利用了0E开头的MD5值的混淆绕过)
}
那么就可以构造payload
param1[]=1¶m2[]=2
最终利用hackbar得到flag
360截图16560317447961.PNG