Bugku md5 collision

题目名字都叫md5碰撞,那就肯定和md5碰撞脱不了关系了

打开题目,首先让我们输入a

行吧,随意post一个a=1进去

结果提示flase

这里应该是有特殊值,我们找找看

查看源码,抓包

没找到

试试全局变量object。。。失败

回想下题目名字,md5碰撞,这里一定就和md5碰撞相关了,所以我们将object进行md5加密传入试试。。。。失败

然后去百度上找了下md5碰撞相关内容

 

解释是:

PHP在处理哈希字符串时,会利用”!=””==”来对哈希值进行比较,它把每一个以”0E”开头的哈希值都解释为0,所以如果两个不同的密码经过哈希以后,其哈希值都是以”0E”开头的,那么PHP将会认为他们相同,都是0

 

攻击者可以利用这一漏洞,通过输入一个经过哈希后以”0E”开头的字符串,即会被PHP解释为0,如果数据库中存在这种哈希值以”0E”开头的密码的话,他就可以以这个用户的身份登录进去,尽管并没有真正的密码。

原文链接:https://blog.csdn.net/qq_30464257/article/details/81432446

 

所以我们这里也就随意使用0e开头的科学计数法字符串的md5加密字符串来传入就可以伪造正确的值了

http://123.206.87.240:9009/md5.php?a=s878926199a

 

 

猜你喜欢

转载自www.cnblogs.com/wosun/p/11986854.html