动网上传漏洞就是利用的这一特性,大家肯定对此很熟悉了。它的原理就是计算机处理字符串时在ASCII码为00处自动截断。我们就可以把/msadc/msadcs.dll改写为/msadc/msadcs.dll Iloveheikefangxian,用Winhex将.dll与Ilove之间的空格换为00的ASCII码,保存后再用NC配合管道符提交。这样在有些IDS看来/msadc/msadcs.dll Iloveheikefangxian并不与它的规则集文件中规定为具有攻击意图的字符串相同,从而它就会对攻击者的行为无动于衷。瞧!“计算机处理字符串时在ASCII码为00处自动截断”这一原理的应用多么广泛啊!从哲学上讲,事物之间相互存在着联系,我们应该多思考,挖掘出内在规律,这样就会有新的发现。
第三招:使用路径分隔符“\”
对于像微软的IIS这类Web服务器,“\“也可以当“/”一样作为路径分隔符。有些IDS在设置规则集文件时并没有考虑到非标准路径分隔符“\”。如果我们把/msadc/msadcs.dll改写为\msadc\ msadcs.dll就可以逃过snort的法眼了,因为snort的规则集文件里没有\msadc\ msadcs.dll这一识别标志。值得一提的是路径分隔符“\”还有个妙用,就是前段时间《黑客防线》上提到的“%5c”暴库大法,“%5c”就是“\”的16进制表现形式。
第四招:十六进制编码
对于一个字符,我们可以用转义符号“%” 加上其十六进制的ASCII码来表示。比如/msadc/msadcs.dll中第一个字符“/”可以表示为%2F,接下来的字符可以用它们对应的16 进制的ASCII码结合“%”来表示,经过此法编码后的URL就不再是原先的模样了,IDS的规则集文件里可能没有编码后的字符串,从而就可以绕过IDS。但是这种方法对采用了HTTP预处理技术的IDS是无效的。
第五招.非法Unicode编码
UTF-8编码允许字符集包含多余256个字符,因此也就允许编码位数多于8位。“/”字符的十六进制的ASCII码是2F,用二进制数表示就是00101111。UTF-8格式中表示2F的标准方法仍然是2F,但是也可以使用多字节UTF-8来表示2F。字符
上一页 [1] [2] [3] [4] 下一页