实验吧-web-Once More

作者: 简言之_ | 来源:发表于2019-01-30 11:27 被阅读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

    相关文章

      网友评论

        本文标题:实验吧-web-Once More

        本文链接:https://www.haomeiwen.com/subject/iivqsqtx.html