IPS作为企业防护系统,也如同传统防护系统IDS一样,并非是牢不可破的。通过TCP/IP协议IPS处理机制问题的漏洞和RPC协议进行IPS攻击规避是常见的攻击规避方式。而本篇文章所要介绍的通过URL混淆方式来实施IPS攻击规避是通过IPS产品的URL过滤机制的漏洞所实现的。
这类规避方式主要包括如下几种:
采用转义符“%”将字符用16进制表示
采用转义符“%u”将字符用UNICODE方式表示
随机插入“//”,“/./”和“”字符
随机变换大小写
用tab符(0x09或0x0b)或回车符(0x0d)做分隔符
加入干扰字符串
以CVE-1999-0070为例,该漏洞产生原因是NCSA HTTPd和早期的Apache Web Server自带了一个名为“test-cgi”的Shell CGI脚本,通常位于“/cgi-bin”目录,用于测试Web服务的配置是否已经可以正常地使用CGI脚本。test-cgi脚本的实现上存在输入验证漏洞,远程攻击者可能利用此漏洞遍历主机的目录,查看目录下的内容,因此检测该攻击的特征码一般包含“cgi-bin/test-cgi”这个字符串,该攻击概念验证(PoC)如下:
GET /cgi_bin/test-cgi?/* HTTP/1.1
对该PoC的URL进行混淆后可以得到如下所示的URL格式:
不幸的是这些混淆后的形式都是WEB服务器可接受的,显然要避免这种攻击的漏报,IPS就不能在原始URL中进行特征匹配操作,而应先对URL进行恢复和整理后再进行规则检测等操作。
【编辑推荐】