1.点进网页,发现是两个相同的MD5值,解密出来时两个空字符串
2.题目提示已经讲的很明确了,备份,找bak文件,第一个想到的就是index.php.bak,果然是,不行的话就直接用脚本扫吧
脚本下载链接:https://github.com/WangYihang/SourceLeakHacker.git
3.查看源码
发现是把uri中包含?往后的全截出来,然后再把?也去了,把后面的参数部分中所有key换成空格
最后解析各个参数值
输出key1和key2的值,由于默认不带参数,所以key1 key2都是null
由于str_replace函数只替换一次
所以可以形如kekey1进行绕过
最后就是绕过if,意思就是md5值相等,而key不相等
==不是强制相等,可以进行绕过
两种绕过方式1.md5不处理数组,key1,key2如果都是数组,md5(key1)和md5(key2)都是null,key1不等于key2
构造url index.php?kekeyy1[]=someting&kekeyy2[]=anything
2.md5撞库
如果两个字符经MD5加密后的值为 0exxxxx形式,就会被认为是科学计数法,且表示的是0*10的xxxx次方,还是零,都是相等的。
下列字符串符合条件:
QNKCDZO
240610708
s878926199a
s155964671a
s214587387a
s214587387a
构造形如 index.php?kekeyy1=QNKCDZO&kekeyy2=240610708
参考视频链接:https://www.bilibili.com/video/BV1aL411p7De