bypass again
200
地址:依旧是弱类型
来源 hctf
if (isset($_GET['a']) and isset($_GET['b'])) {
if ($_GET['a'] != $_GET['b'])
if (md5($_GET['a']) === md5($_GET['b']))
die('Flag: '.$flag);
else
print 'Wrong.';
}
代码可以看出要求,要验证输入的a与b,既要ab不等,又要md5后===,这里用到md5对于array类型比较都相等。
ps:
PHP手册中的md5()函数的描述是string md5 ( string $str [, bool $raw_output = false ] )
,md5()中的需要是一个string类型的参数。但是当你传递一个array时,md5()不会报错,知识会无法正确地求出array的md5值,这样就会导致任意2个array的md5值都会相等。
资料链接:php弱类型导致的安全问题