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

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

相关文章

专业黑客接单一般多少钱 专业接单黑客联系方式

专业黑客接单一般多少钱 专业接单黑客联系方式

中国黑客联盟的安全工程师上周透露,中国黑客联盟产品的持续安全改进终于开始见效。 中国黑客联盟的安全工程师Matt Miller在以色列举行的BlueHat安全会议上的一次演讲中说,现在广泛和...

运用Sboxr完成DOM XSS缝隙的主动发掘与使用

这一系列文章将为咱们展现如安在单页或JavaScript富应用上,运用Sboxr完成DOM XSS缝隙的主动发掘与运用。咱们将以https://domgo.at靶场中的10个DOM XSS的小操练为...

Django开发与攻防测验(入门篇)

最近在培训包含在一些竞赛中,python结构方面的攻防需求呈现的越来越频频。 尽管python结构相关于Java、php等的广泛度还略低一点(当然现在的盛行程度现已越来越高了),可是咱们并不能够因此而...

LimeRAT在野外传达

几天前,Cybaze-Yoroi ZLab安全团队遇到了一类风趣的感染链,它运用多种杂乱技能,能够绕过传统安全防御机制并躲藏其payload,对方针用户形成严重威胁。 整个感染链始于一个LNK文件,运...

网站被挂木马与777权限的微妙

 某天VIP大讲堂微信群里的一位同学说网站被人挂马了,查了半响也查不到原因。艺龙SEO负责人刘明问了一句“是不是技能把linux体系里网站的中心目录设置777文件权限了”,同学查后发现不出所料。那么,...

OWASP TOP 10之怎么防护CSRF进犯

0x00 什么是CSRF CSRF(Cross-site request forgery跨站恳求假造,也被称为“One Click Attack”或许Session Riding,一般缩写为CSR...