码迷,mamicode.com
首页 > Web开发 > 详细

【实验吧】Once More&&【笔记】 PHP 函数漏洞总结

时间:2017-10-14 19:49:45      阅读:331      评论:0      收藏:0      [点我收藏+]

标签:als   实验吧   技术分享   ==   存在   password   匹配   笔记   article   

<?php
if (isset ($_GET[‘password‘])) {
    if (ereg ("^[a-zA-Z0-9]+$", $_GET[‘password‘]) === FALSE)
    {
        echo ‘<p>You password must be alphanumeric</p>‘;
    }
    else if (strlen($_GET[‘password‘]) < 8 && $_GET[‘password‘] > 9999999)
    {
        if (strpos ($_GET[‘password‘], ‘*-*‘) !== FALSE)
        {
            die(‘Flag: ‘ . $flag);
        }
        else
        {
            echo(‘<p>*-* have not been found</p>‘);
        }
    }
    else
    {
        echo ‘<p>Invalid password</p>‘;
    }
}
?>

1.ereg漏洞:首先第一层检查需要绕过ereg漏洞,百度可以知道存在截断的问题,ereg读到%00的时候,就截止了

2.strlen()限制了长度小于8并且大小必须大于9999999,1e8=100000000 > 9999999

3.strpos()对password进行匹配,必须含有-,最终才输出flag

于是构造password:1e8%00*-*

将password=1e8%00*-*写入地址栏
技术分享

补充:所谓ereg漏洞,其实就是00截断。

PHP 函数漏洞总结:

 http://www.tk4479.net/qq_31481187/article/details/60968595

【实验吧】Once More&&【笔记】 PHP 函数漏洞总结

标签:als   实验吧   技术分享   ==   存在   password   匹配   笔记   article   

原文地址:http://www.cnblogs.com/liuyimin/p/7668005.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!