扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:中国IT实验室 2007年9月1日
关键字:
在本页阅读全文(共4页)
# %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都能识别。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者