【学习笔记 20】buu [BJDCTF2020]Easy MD5

知识点

 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界面

 

那么就可以构造payload

param1[]=1¶m2[]=2

最终利用hackbar得到flag
360截图16560317447961.PNG

你可能感兴趣的:(【学习笔记 20】buu [BJDCTF2020]Easy MD5)