利用PHP解析字符串函数parse_str的特性来绕过IDS、IPS和WAF-黑客接单平台

访客5年前黑客文章1305
众所周知,PHP将查询字符串(在URL或正文中)转换为$_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"]。 PHP需要将一切参数转换为一个有用的变量名,所以当解析查询字符串时,它主要做两件事: 1.删去初始空格; 2.将一些字符转换为下划线(包含空格)。 例如: 经过简略循环,你能够运用parser_str函数发现哪个字符被删去或转换为下划线: parse_str.php运转 parse_str用于get、post和cookie。假如你的web服务器承受带有点或空格的标题称号,那么标题也会发作相似的状况。我现已履行了三次上面的循环,枚举参数称号两头的了从0到255的一切字符,成果如下: [1st]foo_bar foo[2nd]bar foo_bar[3rd] 在上述计划中,foo%20bar和foo+bar是等价的,并被解析为foo bar。 Suricata suricata是一款开源高性能的侵略检测体系,并支撑ips(侵略防护)与n *** ( *** 安全监控)形式,用来代替原有的snort侵略检测体系,彻底兼容snort规矩语法和支撑lua脚本。 关于外行来说,Suricata是一个“开源、老练、快速和强壮的 *** 要挟检测引擎”,其引擎能够实时进行侵略检测(IDS)、内联侵略防备(IPS)、 *** 安全监控(N *** )和离线pcap处理。 运用Suricata,你乃至能够界说一个查看HTTP流量的规矩。假定你界说了以下这样一个规矩: alert http any any -> $HOME_NET any ( msg: "Block SQLi"; flow:established,to_server; content: "POST"; http_method; pcre: "/news_id=[^0-9]+/Pi"; sid:1234567; ) 此规矩会查看news_id是否具有非数字值,在PHP中,能够轻松绕过乱用其查询字符串解析器,如下所示: /?news[id=1%22+AND+1=1--' /?news%5bid=1%22+AND+1=1--' /?news_id%00=1%22+AND+1=1--' 在GitHub上搜索时,我发现了有许多针对PHP的Suricata规矩能够经过替换下划线,在被查看的参数称号中增加空字节或空格来绕过。详细示例,请点此。 alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"ET CURRENT_EVENTS Sakura exploit kit exploit download request /view.php"; flow:established,to_server; content:"/view.php?i="; http_uri; fast_pattern:only; pcre:"//view.php?i=d&key=[0-9a-f]{32}$/U"; classtype:trojan-activity; sid:2019678; rev:2;) 正如咱们之前看到的那样,能够经过以下 *** 绕过: /view.php?i%00=1&%20key=d3b07384d113edec49eaa6238ad5ff00 说实话,改动参数方位就足够了: /view.php?key=d3b07384d113edec49eaa6238ad5ff00&i=1 WAF (ModSecurity) PHP查询字符串解析器也或许被乱用以绕过WAF规矩,幻想一下ModSecurity规矩,SecRule !ARGS:news_id "@rx ^[0-9]+$" "block"明显很简略运用相同的绕过技能。走运的是,在ModSecurity中,你能够经过正则表达式指定查询字符串参数。比方:SecRule !ARGS:/news.id/ "@rx ^[0-9]+$" "block"。 这将阻挠一切以下恳求: ⛔️/?news[id=1%22+AND+1=1--' ⛔️/?news%5bid=1%22+AND+1=1--' ⛔️/?news_id%00=1%22+AND+1=1--' PoC 让咱们用Suricata和Drupal CMS创立一个PoC,以运用CVE-2019-7600。CVE-2019-7600,该缝隙存在于很多Drupal版别中,攻击者能够运用此缝隙强制运转Drupal的服务器,并履行或许损害Drupal装置的恶意代码。依据详细装备的不同,这也很或许会危及到主机。为了简略起见,我将在两个docker容器上运转Suricata和Drupal,并测验从Suricata容器中运用Drupal。 我将激活关于Suricata的两条规矩: 1.阻挠form_id=user_register_form的自界说规矩; 2.CVE-2019-7600的 Positive Technologies Suricata规矩。 [1][2]黑客接单网

相关文章

Burpsuit结合SQLMapAPI发生的批量注入插件(X10)

1.1变化: 添加过滤设置 优化显现成果 添加运转提示信息 添加域名正则匹配 整个插件分为三个面板:使命面板、sqlmapapi参数装备面板、过滤条件面板。 使命面板 Server : SQLmap...

Game-of-Thrones-CTF-1靶机彻底攻略

虚拟机地址:https://www.vulnhub.com/entry/game-of-thrones-ctf-1,201/ 这个靶机的难度较高,进程并不是趁热打铁,所以经过了屡次替换网络和IP的进程...

华为内部web安全规律

Web安全准则 1.认证模块有必要选用防暴力破解机制,例如:验证码或许屡次接连测验登录失利后确定帐号或IP。 阐明:如选用屡次接连测验登录失利后确定帐号或IP的办法,需支撑接连登录失利确定战略的“答...

针对非Webapp测验的Burp技巧(二):扫描、重放

在本系列连载的第一节中,笔者谈到了关于burp对非webapp的功用测验。原本我只想写点东西共享出来,并没想到会扯出那么多。现在嘛,我还会持续写下去。 在这一节中,我会讲一讲: Target >...

使用osquery进行远程取证-黑客接单平台

Osquery是一个SQL驱动操作体系检测和剖析东西,它由Facebook创立,支撑像SQL句子相同查询体系的各项目标,能够用于OSX和Linux操作体系。别的,osquery是一个多渠道软件,能够安...

向Web服务器投递恶意挖矿软件的蠕虫-黑客接单平台

实践中,面向公共互联网供给服务的体系或服务器,都是处于边际方位的。所以无论是物联网设备仍是企业级服务器,只要能被外界访问到,那就会无时无刻被进犯。 最近,咱们发现了一种进犯方法,多个公司Apache...