zblog1.8 最新漏洞及修复方法
时间:2010-12-25 来源:Clouder
发布日期:2010-12.25
发布作者:Clouder
影响版本:zblog 1.8
官方网站:http://www.rainbowsoft.org/
漏洞类型:路站
漏洞文件:cmd.asp
漏洞地址:http://blog.rainbowsoft.org/cmd.asp?act=gettburl&id=10"><iframe%20src=http://seo.noosky.com%20></iframe>
简要描述:对变量gettburl提交的参数过滤不严,最终导致跨站漏洞的形成。
漏洞解析:在cmd.asp中,程序对gettburl提交的id参数做如下处理:
Call GetRealUrlofTrackBackUrl((Request.QueryString("id")))
其中GetRealUrlofTrackBackUrl是引用日志TrackBack地址的函数,他的函数处理如下:
'plugin node
For Each sAction_Plugin_TrackBackUrlGet_Begin in Action_Plugin_TrackBackUrlGet_Begin
If Not IsEmpty(sAction_Plugin_TrackBackUrlGet_Begin) Then Call Execute(sAction_Plugin_TrackBackUrlGet_Begin)
If bAction_Plugin_TrackBackUrlGet_Begin=True Then Exit Function
Next
在做如上判断后对gettburl的id参数进行输出,在输出时候对id这个参数过滤不严,导致了跨站漏洞的产生,黑客可以利用这个漏洞盗取管理员的cookies以及添加管理员等,甚至直接getshell。
修补方法:
在博客根目录找到cmd.asp文件,找到
Call System_Initialize()
然后在上面添加
function checksql_c(text)
if IsNumeric(text)=false then
response.Redirect("default.asp")
response.End()
end if
end function
找到
GetRealUrlofTrackBackUrl
将 Call GetRealUrlofTrackBackUrl(Request.QueryString("id")) ,改为Call GetRealUrlofTrackBackUrl(checksql_c(Request.QueryString("id")))
至此漏洞修补完毕
下载地址: zblog漏洞修补文件件
标签分类: