CTF-Web安全ctf信息安全

实验吧-web-Once More

2019-01-30  本文已影响0人  简言之_

本系列文集:实验吧-Write up --将持续更新 觉得还不错请给个喜欢,感谢!

打开题目发现PHP代码,明显的代码审计题!

<?php
if (isset ($_GET['password'])) {
    if (ereg ("^[a-zA-Z0-9]+$", $_GET['password']) === FALSE)
    {//1.ereg()正则限制了password的形式,只能是一个或者多个数字、大小写字母
        echo '<p>You password must be alphanumeric</p>';
    }
    else if (strlen($_GET['password']) < 8 && $_GET['password'] > 9999999)
    { //2.长度小于8并且大小必须大于9999999
        if (strpos ($_GET['password'], '*-*') !== FALSE)
        {//3.password中必须含有*-*
            die('Flag: ' . $flag);
        }
        else
        {
            echo('<p>*-* have not been found</p>');
        }
    }
    else
    {
        echo '<p>Invalid password</p>';
    }

ereg()漏洞:
ereg()函数存在%00截断漏洞,ereg读到的时候,就截止了
解析:

要想得到flag就要满足
1.ereg()正则限制了password的形式,只能是一个或者多个数字、大小写字母
2.长度小于8并且大小必须大于9999999
3.password中必须含有*-*

构造payload:password=1e8%00*-* or 9e9%00*-*
在URL中提交,直接在显示框中提交%00会在url中改变

图片.png
上一篇下一篇

猜你喜欢

热点阅读