if (isset ($_GET['password'])) {
if (ereg ("^[a-zA-Z0-9]+$", $_GET['password']) === FALSE)
{
echo '<p>You password must be alphanumeric</p>';
}
else if (strlen($_GET['password']) < 8 && $_GET['password'] > 9999999)
{
if (strpos ($_GET['password'], '*-*') !== FALSE)
{
die('Flag: ' . $flag);
}
else
{
echo('<p>*-* have not been found</p>');
}
}
else
{
echo '<p>Invalid password</p>';
}
}
- ereg() 正则 限制了password的格式,只能是一个或者多个数字或者大小写字母
- strpos() 查找某字符串在另一字符串中第一次出现的位置(区分大小写),本题中需要匹配到
"
*-*"
才能输出flag
解法一:可以通过数组绕过
?password[]=
解法二:
%00截断绕过正则匹配
判断是不是长度<8 且>9999999