http://chinalover.sinaapp.com/web18/index.php
题解:source.php,打开发现如下关键代码:
<?php if ($_SERVER["REQUEST_METHOD"] == "POST") { ?>
<?php
extract($_POST);
if ($pass == $thepassword_123) { ?>
<div class="alert alert-success">
<code><?php echo $theflag; ?></code>
</div>
<?php } ?>
<?php } ?>
extract()
函数的作用:从数组中将变量导入到当前的符号表,可以看到这里的代码为:extract($_POST)
,即将POST的参数导入当前的符号表,由于extract()函数存在变量覆盖漏洞,所以提交post参数:pass=123&thepassword_123=123
或者pass[]=&thepassword_123
,即将两个变量的值修改成相同的,即可得到flag!