0×00 靶场链接
http://123.206.87.240:9009/md5.php
0×01 题目描述
0×02 解题过程
题目名为md5碰撞,然后页面提示为输入a
不对???
想到之前输入的?id=1之类的难道是要赋值
可能值不太对吧
那就想想MD5碰撞
MD5碰撞
PHP在处理哈希字符串时,会利用”!=”或”==”来对哈希值进行比较,它把每一个以”0E”开头的哈希值都解释为0,所以如果两个不同的密码经过哈希以后,其哈希值都是以”0E”开头的,那么PHP将会认为他们相同,都是0。
攻击者可以利用这一漏洞,通过输入一个经过哈希后以”0E”开头的字符串,即会被PHP解释为0,如果数据库中存在这种哈希值以”0E”开头的密码的话,他就可以以这个用户的身份登录进去,尽管并没有真正的密码。
所以就令a=一个哈希后以”0E“开头的字符串即可
QNKCDZO |
0e830400451993494058024219903391 |
s878926199a |
0e545993274517709034328855841020 |
s155964671a |
0e342768416822451524974117254469 |
s214587387a |
0e848240448830537924465865611904 |
s214587387a |
0e848240448830537924465865611904 |
s878926199a |
0e545993274517709034328855841020 |
s1091221200a |
0e940624217856561557816327384675 |
s1885207154a |
0e509367213418206700842008763514 |
随便试一下就出来了