PHP弱类型导致的安全问题--md5

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弱类型导致的安全问题

你可能感兴趣的:(CTF)