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

访客6年前黑客文章1325
众所周知,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]黑客接单网

相关文章

一个MongoDB注入进犯事例剖析

在开端咱们的MongoDB“注入之旅”之前,咱们需求先知道和其他数据库比较,为什么咱们更乐意选MongoDB——由于MongoDB并不是SQL作为查询句子,所以人们可能会认为这样的数据库难以进行注入进...

网络爬虫暗藏杀机:在Scrapy中利用Telnet服务LPE-黑客接单平台

网络抓取结构中运用最多的莫过所以scrapy,但是咱们是否考虑过这个结构是否存在缝隙妮?5年前曾经在scrapy中爆出过XXE缝隙,但是这次咱们发现的缝隙是一个LPE。 经过该缝隙能够获得shell,...

在线破解改了当地破译倘若你确实属实填好这种材料并傻乎乎推送回

在线破解更改了当地破译那类处于被动的破译方法,要是是线上的QQ号码都可以破译,应用领域范围广。但是因为它依然选用穷举法专业技能,因此在枚举类型密匙十位数长短及其种类时,校...

Web缓存操控战略详解

Cache-Control 办理Web缓存的最常用和最有用的办法之一是经过Cache-Control HTTP标头,由于此标头适用于Web页面的缓存,这意味着咱们页面上的一切内容都能够具有十分精细化的...

色情广告挂马剖析:记一次挂马与挖矿之间的“密切触摸”

1. 布景: 近来,腾讯安全反病毒实验室发现,有一类木马经过网页广告挂马的方法大规划传达。广告内容为色情链接,诱导用户点击。链接中嵌入了一段触发IE缝隙的JS脚本,假如用户电脑的IE浏览器没有及时打好...

根底事情呼应中的Volatility作业流程

最近,我发现自己需求对完好内存转储进行一些查询。通过一段时间的搜索,我发现了Volatility-Labs的这篇文章,依据其间的辅导办法,我能够很好的来评价内存转储。当然,你或许会有更好、更深度的内存...