FCKEditor最新上传漏洞(ASP),允许上传“.asp;jpg”类型文件解决方案
广告:
近期公司大量网站受到攻击,造成很的损失。经过反复分析,发现原来是FCKEditor存在上传漏洞。这里,我针对此上传漏洞进行了修正,具体情况请见以下分析:
攻击表现:
接收上传的目录,发现有以“.asp;jpg”为扩展名的攻击文件。
攻击分析:
执行上传目录的“.asp;jpg”文件,发现它被当做一个正常的ASP文件执行,这应该是IIS本身的漏洞,虚机用户根本就没办法处理。那么,我们只能从文件创建的角度处理了。于是我就开始分析FCKEditor的上传功能。FCKEditor上传检测,是通过黑色单/白名单的方式检测允许和不允许上传的文件类型。
上传支持文件:class_upload.asp
Private Function IsAllowed(sExt)
Dim oRE
Set oRE = New RegExp
oRE.IgnoreCase = True
oRE.Global = True
If sDenied = "" Then
oRE.Pattern = sAllowed
IsAllowed = (sAllowed = "") Or oRE.Test(sExt)
Else
oRE.Pattern = sDenied
IsAllowed = Not oRE.Test(sExt)
End If
Set oRE = Nothing
End Function
通过上面的代码,我们明显可以看出,FCKEditor白名单检测不够严谨,所有文件扩展名里包含白名色单列表值的,都可以通过此验证,这就造成了类似“.asp;jpg、.asp;gif”等文件可以通过FCKEditor的图片上传功能传至网站,而IIS本身又有无法正常识别“.asp;jpg”的漏洞。结果自然也就不需要我说了。
解决办法:
本文以ASP版为例,上传支持文件地址:
fckeditor\editor\filemanager\connectors\asp\class_upload.asp
知道了漏洞,那么我们处理起来,也就相对简单起来。只要完善FCKEditor的上传检测即可。
上传支持文件:class_upload.asp Private Function IsAllowed(sExt) Dim oRE Set oRE= New RegExp oRE.IgnoreCase= True oRE.Global= True If sDenied = "" Then Set oRE= Nothing |
广告: