欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

如何滥用PHP字符串解析函数绕过IDS、IPS及WAF

来源:本站整理 作者:佚名 时间:2019-07-10 TAG: 我要投稿

在本文中,我们将与大家分享如何利用PHP字符串解析函数绕过IDS/IPS以及应用防火墙规则。
大家都知道,PHP会将(在URL或body中的)查询字符串转换成$_GET或者$_POST中的关联数组。比如:/?foo=bar会被转换成Array([foo] => “bar”)。查询字符串解析过程会删除或者使用下划线替换参数名中的某些字符。比如,/?%20news[id%00=42会被转换成Array([news_id] => 42)。如果IDS/IPS或者WAF所使用的规则会阻止或者记录下news_id参数中的非数字值,那么就可以滥用这种解析过程来绕过这一限制,比如:
/news.php?%20news[id%00=42″+AND+1=0–
在PHP中,如果使用如上查询语句,那么%20news[id%00参数的值会被存放到$_GET[“news_id”]中。
 
0x01 原理解析
PHP需要将所有参数转成有效的变量名,因此在解析查询字符串时,PHP主要会执行两个操作:
删除开头的空格符
将某些字符转换成下划线字符(包括空格符)
比如:
输入
解码
PHP变量名
%20foo_bar%00
foo_bar
foo_bar
foo%20bar%00
foo bar
foo_bar
foo%5bbar
foo[bar
foo_bar
比如我们可以使用如下代码,探测哪些字符会被parser_str函数删除或者转换为下划线:

图. PHP parser_str函数
    foreach(
        [
            "{chr}foo_bar",
            "foo{chr}bar",
            "foo_bar{chr}"
        ] as $k => $arg) {
            for($i=0;$i255;$i++) {
                echo "\033[999D\033[K\r";
                echo "[".$arg."] check ".bin2hex(chr($i))."";
                parse_str(str_replace("{chr}",chr($i),$arg)."=bla",$o);
               
                /* yes... I've added a sleep time on each loop just for
                the scenic effect 🙂 like that movie with unrealistic
                brute-force where the password are obtained
                one byte at a time (∩`-´)⊃━☆゚.*・。゚
                */
                usleep(5000);
               
                if(isset($o["foo_bar"])) {
                    echo "\033[999D\033[K\r";
                    echo $arg." -> ".bin2hex(chr($i))." (".chr($i).")\n";
                }
            }
            echo "\033[999D\033[K\r";
            echo "\n";
    }

图. parse_str.php运行结果动图
parse_str在GET、POST以及cookie上都有应用。如果web服务器可以接受头部字段中带有点或者空格的字段名,那么也会出现这种情况。我分3次执行了如上循环,枚举了参数名两端从0到255的所有字符(除下划线外),结果如下:
[1st]foo_bar
foo[2nd]bar
foo_bar[3rd]

[1] [2] [3]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载