看代码:
<?php
session_start();
if (isset ($_GET['password'])) {
if ($_GET['password'] == $_SESSION['password'])
die ('Flag: '.$flag);
else
print '<p>Wrong guess.</p>';
}
mt_srand((microtime() ^ rand(1, 10000)) % rand(1, 10000) + rand(1, 10000));
?>
得到flag的条件就是:$_GET['password'] == $_SESSION['password']
也就是输入的password和session一样。
先对session进行介绍:
session和cookie在对用户验证上的原理差不多,都是以唯一的值来验证用户身份,不过session是保存在服务器端的cookie,也就是说,网站的服务器端的身份验证机制,cookie是浏览器端的身份验证机制
要满足这个条件,只需要让输入的password(也就是$_GET['password'])和cookie中的session相等就行了。
我们可以在开发者工具下直接查看session:
然后把phpsessid的值清空,再直接提交空答案(直接点Guess)就拿到flag了。