ctf web方向与php学习记录10

在备份是个好习惯中,本人有一个地方无法理解,接下来将解题步骤写出。
首先,利用SourceLeakHacker漏洞扫描器扫描发现如下
ctf web方向与php学习记录10flag.php是空白的,那就选择bak,网页进入后是下载了一个index.php.bak文件,利用phpstorm查看
ctf web方向与php学习记录10然后,就出现了md5加密函数,通过代码可知,只要**了if中的矛盾就可以拿到flag。
str_replace采用非递归思想,利用双写即可绕过。函数由字符串第零位开始读取,直到读到key时替换为空,所以kekeyy和kkeyey都是一样的。
1、md5()函数无法处理数组,如果传入的为数组,会返回NULL,所以两个数组经过加密后得到的都是NULL,也就是相等的。
2,如果两个字符经MD5加密后的值为 0exxxxx形式,就会被认为是科学计数法,且表示的是0*10的xxxx次方,还是零,都是相等的。
下列的字符串的MD5值都是0e开头的
QNKCDZO
240610708
s878926199a
s155964671a
s214587387a
s214587387a
(md5()函数理解来源于php manual)
(矛盾**方法来源于https://blog.csdn.net/zpy1998zpy/article/details/80582974)