代码审计-strpos数组绕过

<?php
$flag = "flag";
if (isset ($_GET['ctf'])) {
if (@ereg ("^[1-9]+$", $_GET['ctf']) === FALSE)
echo '必须输入数字才行';
else if (strpos ($_GET['ctf'], '#biubiubiu') !== FALSE)
die('Flag: '.$flag);
else
echo '骚年,继续努力吧啊~';
}
?>

ereg()函数用指定的模式搜索一个字符串中指定的字符串,如果匹配成功返回true,否则,则返回false。搜索字母的字符是大小写敏感的。

strpos() 函数查找字符串在另一字符串中第一次出现的位置。

参数ctf要输入数字,同时又要输入#biubiubiu

但是两个函数都可以用数组进行绕过

payload

http://123.206.87.240:9009/15.php?ctf[]=1

Flag: flag{Bugku-D-M-S-J572}

猜你喜欢

转载自www.cnblogs.com/gaonuoqi/p/11408309.html