尝试sql注入
发现无回显只有url中传递password参数尝试burpsuite抓包
提示我们sql语句,关于password=md5($pass,true) ,这里我们需要用到字符串ffifdyop,它的md5结果是:276f722736c95d99e921722cf9ed621c 。通过这个结果我们可以发现得到16字节的二进制被解析为字符的结果是:'or'6,sql语句变成select * from 'admin' where password=''or'6'。
参考(1条消息) PHP中MD5常见绕过_iringzh的博客-CSDN博客_php md5绕过
页面回显,查看源码
这里我们需要两个变量不相等,md5计算后的散列值相等
PHP中==是判断值是否相等,若两个变量的类型不相等,则会转化为相同类型后再进行比较。PHP在处理哈希字符串的时候,它把每一个以0e开头并且后面字符均为纯数字的哈希值都解析为0。常见的如下:
在md5加密后以0E开头
QNKCDZO
240610708
s878926199a
s155964671a
所以构造payload:a=QNKCDZO,b=240610708
===绕过,这个时候可以用到PHP中md5()函数无法处理数组来实现绕过。
构造payload:param1[]=1¶m2[]=2
知识点
1.md5password($pass,true)sql注入问题 字符串ffifdyop,解析结果'or'6
2.md5弱比较绕过问题 两个变量不相等,md5计算后的散列值相等,PHP在处理哈希字符串的时候,它把每一个以0e开头并且后面字符均为纯数字的哈希值都解析为0。常见字符串
QNKCDZO
240610708
s878926199a
s155964671a
3.md5===绕过 这个时候可以用到PHP中md5()函数无法处理数组来实现绕过。
参考博客(1条消息) PHP中MD5常见绕过_iringzh的博客-CSDN博客_php md5绕过