1.Once More(http://www.shiyanbar.com/ctf/1805)
点击—view the source code
关键码
else if (strlen(_GET['password']) < 8 &&_GET[‘password’] > 9999999)
{
if (strpos ($_GET[‘password’], ‘-‘) !== FALSE)
{
die(‘Flag: ’ . $flag);
}
看了代码后,大意就是让我们满足以下条件才会出来flag
1.password的字符串长度小于8而password的数值却要大于9999999
2.并且该数中要包含“-”
第一点,只有科学计数法能满足
如1e7,1e8,1e9
第二点,如果我们直接加-,答案为1e9-的话实际上两个条件都不满足了
根据提示ereg()存在漏洞,百度之,知道是截断漏洞,故构造1e8%00*-*
完整的url=http://ctf4.shiyanbar.com/web/more.php?password=1e8%00-
2.Guess Next Session(http://www.shiyanbar.com/ctf/1788)
点击—view the source code
if (
GET[′password′]==
_SESSION[‘password’])
die (‘Flag: ‘.$flag);
要求get获取的值必须和session的值相等
这肯定涉及到burpsuite抓包改包
先随便填个数进去,抓包进行修改
在抓到的header里,只需修改password=后的值等于PHPSESSID=后的值即可
但是代码中我们发现mt_srand((microtime() ^ rand(1, 10000)) % rand(1, 10000) + rand(1, 10000));
?>
要挑战rand是不可能的
于是我们尝试将两者都修改为0
得到答案
3.FALSE(http://www.shiyanbar.com/ctf/1787)
点击—view the source code