sha1
1.PHP在处理哈希字符串时,会利用”!=”或”==”来对哈希值进行比较,它把每一个以”0E”开头的哈希值都解释为0,所以如果两个不同的密码经过哈希以后,其哈希值都是以”0E”开头的,那么PHP将会认为他们相同,都是0。
2.数组绕过
payload:
1.数组绕过。
2.
sha1('aaroZmOk')
sha1('aaK1STfY')
sha1('aaO8zKZF')
sha1('aa3OFF9m')
== 比较结果是true 生成的hash是0e开头就行,不一定非要这几个
MD5
MD5不能处理数组
例如
if(md5($_GET['m1']) == md5($_GET['m2']))
{
echo "good";
}
绕过:
get
?m1[]=1&m2[]=2