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.';
}
($_GET['a'] != $_GET['b'])
此处a和b不想等
md5($_GET['a']) === md5($_GET['b']
此处a和b的MD5值相等
===
自处是强等
所以暂无法从弱类型出进行
这时就考虑md5函数的用法,
$_GET可以接受数组但MD5
md5()不能处理数组结构的数据
构造?a[]=1&b[]=2
这样md5函数无法处理数组返回false完成匹配得到flag
Flag: nctf{php_is_so_cool}