- 帖子
- 24
- 积分
- 36
- 威望
- 43
- 金钱
- 39
- 在线时间
- 1 小时
|
5楼
发表于 2008-7-25 01:12
| 只看该作者
第一次看到的文章是lake2写的突破一流,激动的看了一遍后发现的确是一流软件在防SQL注入的时候太想当然了。但也不失为大家尝试突破安装了这个软件的突破口。
VIF不一样,VIF是直接通过拦截SQl注入原文,比如:Select update等等,当然了也考虑到了用户用%xx这样的方式来编码饶过的问题。这点VIF做的比较好,没有被lake2突破出来
第二次看到的就是langouster 发的文章,langouster 发的时候把lake2的原文贴到了下面,平时看文章也比较快,一下就以为这个文章是转贴,标题也一样就没仔细看。
群里有朋友也不只无数次给我发了这个连接 叫我看,我始终没仔细看,直到一个用户对我说,他实验成功了,的确可以突破,我才下去仔细的再读了一遍。
的确,这个漏洞是存在的,ASP.DLL在解码URL的时候采用了异常补获机制,而大多数的urldecode函数中有的却没有带异常捕捉(urldecode不知道有人要利用它来黑站)。这..................这算不算是asp.dll的一个BUG呢,我无语。
接下来的情况就是修复,按照Asp.dll的解码方式写出了与它一致的decode函数,覆盖原来vif的decode函数即可。至此,这个突破口被VIF堵上了,新版本的下载与描述请见:http://www.myiis.cn/News/Show.asp?id=49 (软件为商业软件,非喜勿入)
我想VIF是在这个关注整个“娱乐圈”响应漏洞处理速度最快的了,看到lake2向一流反映一点结果也没有
此文咋一看总有那么一点广告的嫌疑,哎....总有人那么想,只得贴点实际意义的东西来,有些人喜欢看:
标准的urldecode解码的流程为
10:
取一个字符,如果这个字符不是%,那么就保存这个字符,并且继续
如果是%,那么就取%后面的2位进行hextoint的转化,问题就出在这里,当这2位数字不是标准的0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f 那么 hextoint 就会触发异常
异常发生了,后果很严重,catch后,大部分urldecode就把这次decode的结果设置为空!(恐怖吧),至少VIF 3.35.3版本之前的版本是这样。
而ASP就很TMD的健全,他捕获了这个异常,然后把此轮循环的解码跳过,继续取下一个字符,并且把%后的下一个字符保存起来,再Goto 10;
呵呵,那么就补吧,具体的补的细节不说了,你只要做到跟ASP一样即可!
原文大家就参见:http://forum.eviloctal.com/read-htm-tid-26639.htmlhttp://jnfly.com
帖子175 精华0 积分3293 阅读权限100 在线时间72 小时 注册时间2007-8-18 最后登录2008-7-24 查看详细资料TOP 软件项目外包
rokey
荣誉会员
|
|