[BJDCTF2020]Easy MD5
一个输入框,无论输入什么都没有回显,使用yakit抓包看看
根据返回的数据包可以得知其sql查询语句,我们需要尝试绕过查询语句来获得线索,md5()函数中$pass参数为输入的参数,而true代表一种模式,将字符串md5哈希后转化为二进制类型
MD5语法
标准格式
md5(string,raw)
参数 | 描述 |
---|---|
string | 必需。要计算的字符串。 |
raw | 可选。规定十六进制或二进制输出格式: TRUE-原始 16字符二进制格式 。 FALSE-默认 32字符十六进制数。 |
但是这里如果转化成十六字符二进制格式的话会产生乱码,所以一般会
1.对输出的16位字节的二进制转换为十六进制。
2.取32位秘文的中间16位
这里我们使用ffifdyop,转成十六进制的话就会变成
’or’6XXXXXXXXX(这里的XXXXX是一些乱码和不可见字符)
拼接进查询语句就会变成
select * from admin
where password=''or'6XXXXXXXXX'
完美形成一个万能密码
下一关
查看页面源码
<!--
$a = $GET['a'];
$b = $_GET['b'];if($a != $b && md5($a) == md5($b)){// wow, glzjin wants a girl friend.
-->
弱比较简单使用科学计数法即可绕过
a=QNKCDZO&b=s878926199a
强比较用数组绕过即可