现在的位置: 首页 > 网站安全 > 正文

zblog1.8跨站XSS漏洞及修复方法

2014年01月22日 网站安全 ⁄ 共 1139字 ⁄ 字号 暂无评论 ⁄ 阅读 1 次

最近因为公司的网站被黑,在百度的站长平台工具查到了有个漏洞,就是zblog1.8跨站XSS漏洞,

下面是zblog1.8跨站XSS漏洞及修复方法

发布作者:Clouder
影响版本:zblog 1.8
官方网站:http://www.rainbowsoft.org/

漏洞类型:路站
漏洞文件:cmd.asp

漏洞地址:http://blog.rainbowsoft.org/cmd.asp?act=gettburl&id=10″>& lt; iframe%20src=http://www.waitalone.cn%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”)))

至此漏洞修补完毕

猜你喜欢

给我留言

留言无头像?