发布先锋无组件上传安全漏洞补丁
[ 2009-09-25 23:12:54 | 作者: admin ]
前一阵发现现有多数网站广泛采用的先锋上传组件存在安全漏洞,攻击者可借此攻击网站并导致网站服务器dllhost停止响应。原理很简单,源程序没有对提交的文件扩展名的有无进行判断就进行检验,遇到提交无扩展名的文件,服务dllhost因程序错误而挂起,黑客可以反复提交无扩展名文件来攻击服务器,造成服务器的停止响应。
补丁如下:
找到无组件上传class中这样一句:“oFileInfo.FileName = GetFileName(sFileName)”
在它下面添加如下判断语句:
If InStrRev(oFileInfo.FileName,".",-1)=0 then '重要修改,防止提交不带扩展名的文件导致服务器dllhost挂起
isErr_ =4 '文件名非法
ErrMessage_="文件名缺少扩展名"
Exit Sub
Else
oFileInfo.FilePath = GetFilePath(sFileName)
oFileInfo.FileExt = GetFileExt(sFileName)
iFindStart = InStr (iFindEnd,sInfo,"Content-Type: ",1)+14
iFindEnd = InStr (iFindStart,sInfo,vbCr)
oFileInfo.FileMIME = Mid(sinfo,iFindStart,iFindEnd-iFindStart)
oFileInfo.FileStart = iInfoEnd
oFileInfo.FileSize = iFormStart -iInfoEnd -2
oFileInfo.FormName = sFormName
file.add sFormName,oFileInfo
End if
评论Feed: http://blog.xg98.com/feed.asp?q=comment&id=1282
补丁如下:
找到无组件上传class中这样一句:“oFileInfo.FileName = GetFileName(sFileName)”
在它下面添加如下判断语句:
If InStrRev(oFileInfo.FileName,".",-1)=0 then '重要修改,防止提交不带扩展名的文件导致服务器dllhost挂起
isErr_ =4 '文件名非法
ErrMessage_="文件名缺少扩展名"
Exit Sub
Else
oFileInfo.FilePath = GetFilePath(sFileName)
oFileInfo.FileExt = GetFileExt(sFileName)
iFindStart = InStr (iFindEnd,sInfo,"Content-Type: ",1)+14
iFindEnd = InStr (iFindStart,sInfo,vbCr)
oFileInfo.FileMIME = Mid(sinfo,iFindStart,iFindEnd-iFindStart)
oFileInfo.FileStart = iInfoEnd
oFileInfo.FileSize = iFormStart -iInfoEnd -2
oFileInfo.FormName = sFormName
file.add sFormName,oFileInfo
End if
[最后修改由 admin, 于 2010-05-02 10:33:51]

这篇日志没有评论。
此日志不可发表评论。