Basic PHP
解题思路:
打开题目给的链接,发现很简单粗暴,直接给出php的源码,虽然我没有学过php,但基本逻辑还是看得懂的。输入三个值:test、name、password。
Stage 1:输入的test值经过MD5函数运算后的值为0
Stage 2:name和password值不相同,但经过sha1函数运算后值相同
那就先搜一下MD5后值为0的原文
接着两个值sha1加密后相同,乍看起来这是不可能的,其实可以利用sha1()函数的漏洞来绕过。如果把这两个字段构造为数组,如:?name[]=a&password[]=b,这样在第一处判断时两数组确实是不同的,但在第二处判断时由于sha1()函数无法处理数组类型,将报错并返回false,if 条件成立,GET。