# %u编码,是用来代表Unicode/wide特征字符,但微软IIS web服务器支持这种非标准的web请求编码方式由于%u编码不是标准的编码,IDS系统不能解码%u,所以可以绕过IDS的检测。
例如:使用下列的编码方式就可以绕过一些NIDS对".ida"的攻击的检测。
GET /abc.id%u0061 HTTP/1.0
不过,snort1.8可以检测到这种编码后的攻击,但有一些公司的IDS没注意到这个问题。
解决办法就是在规则匹配前对URL内容的%u编码进行解码后匹配。
#unicode编码,主要针对IIS,将URL中的一些特定的字符或字符串(主要是针对一些IDS匹配的规则内容)用unicode编码表示,
例如:使用下列的编码方式就可以绕过一些NIDS对".ida"的攻击的检测。
GET /abc.id%c1%01 HTTP/1.0
snort1.8目前好象不能检测到这种编码后的攻击。采用通配符如"*string*"匹配的很多IDS应该都存在此类问题。
解决办法就是在规则匹配前对URL内容的unicode编码进行解码后匹配。
* 斜线问题:包括"/"和"\"。
# "/" 问题:如果在HTTP的提交的请求中把'/' 转换成 '//',如"/cgi-bin/test.cgi"转换成"//cgi-bin//test.cgi",虽然两个字符串不匹配,但对许多web服务器的解释是一样的。如果把双斜线换成三斜线或更多效果也是一样的。目前有些IDS无法检测到这种类型的请求。
# "\"问题:Microsoft用'\'来分隔目录,Unix用'/'来分隔,而HTTP RFC规定用'/', Microsoft的web服务器如IIS 会主动把'/' 转换成 '\'。例如发送"/cgi-bin\test.cgi"之类的命令,IIS可以正确识别,但这样IDS就不会匹配"/cgi- bin/test.cgi"了,此法可以逃避一些IDS。
* 命令问题:许多IDS系统检测时缺省认为客户提交的请求是用GET提交的,如GET /cgi-bin/test.cgi。但是相同的请求用HEAD命令也能实现,如用HEAD发送:HEAD /cgi-bin/test.cgi,则有些依靠get方法匹配的IDS系统就不会检测到这个扫描。
* 增加目录:插入一些无用的特殊字符,使其与IDS的检测内容不匹配。
如'..'意思是父目录,'.'意思是子目录,window下的"c:\tmp\.\.\.\.\"的意思就是"c:\tmp\";相应的unix下的 "/tmp/././././"和"/tmp/"等价。对"/cgi-bin/phf"可以任意变化成"/./cgi-bin/././phf等形式。
又如:GET /cgi-bin/blahblah/../test.cgi HTTP/1.0实际和"/cgi-bin/test.cgi"一样,目前一般IDS都能识别。
| PPPOE验证缺陷所带来的危害 | 03-21 | |
| Ce-Admin新闻发布系统漏洞分析 | 02-07 | |
| Discuz漏洞分析 | 11-28 | |
| 入侵检测PHP程序中的目录遍历漏洞 | 10-12 | |
| 主流入侵检测产品大比较 | 10-03 | |
| 一种新的带宽攻击方式(图) | 06-16 | |
| Javascript实现评估用户输入密码 | 05-30 | |
| 针锋相对:主要的反NIDS技术应用 | 05-22 | |
| dvbbs7.1sp1最新漏洞的研究和利用 | 05-13 | |
| IE mhtml redirection漏洞利用方 | 05-12 | |
| Php后门的隐藏技巧测试报告 | 05-11 | |
| McAfee IntruShield 2600入侵防护 | 05-09 | |