试图去解码,发现根本得不到想要的结果~
回想题目说备份是种好习惯,提示提到了备份,应该是备份文件源码泄漏一类的,从这里去思考问题
补充点知识:
备份文件一般情况是在后缀名后加的*.bak
*.bak(被自动或是通过命令创建的辅助文件,它包含某个文件的最近一个版本)
http://123.206.87.240:8002/web16/ 默认访问的是该路径的index.php文件
然后访问http://123.206.87.240:8002/web16/index.php.bak
用记事本打开,我把它代码移到了notepad,具体代码分析写在了里面~
所以当你传入? key1=a&key2=b 的时候 经过过滤会变成 1=a&2=b 此时可以采用双写绕过, 传入? kekeyy1=a&?keleyy2=b, 经过过滤后会得到 key1=a&key2=b.
所以意思是将get的两个参数中的key替换为空(这里可以用kekeyy绕过),然后对key1,key2的值进行md5加密,并进行比较,
下面的比较 md5 比较函数就是典型的 php 弱类型绕过
有两种方法绕过:
1,md5()函数无法处理数组,如果传入的为数组,会返回NULL,所以两个数组经过加密后得到的都是NULL,也就是相等的。
2,利用==比较漏洞
如果两个字符经MD5加密后的值为 0exxxxx形式,就会被认为是科学计数法,且表示的是0*10的xxxx次方,还是零,都是相等的。
下列的字符串的MD5值都是0e开头的:
QNKCDZO
240610708
s878926199a
s155964671a
s214587387a
s214587387a
构造payload:?kkeyey1=QNKCDZO&kkeyey2=240610708 (随便选就行)