您的位置:首页 >> 行业动态 >> Zblog出现跨站脚本攻击漏洞 官方已出补丁
Zblog出现跨站脚本攻击漏洞 官方已出补丁
2008-7-23 11:50:00

7月21日,某安全Blog发表了一份Zblog漏洞报告:

漏洞说明:Z-Blog是一款基于Asp平台的Blog博客(网志)程序,支持Wap,支持Firefox,Oprea等浏览器,在国内使用非常广泛,官方主页在http://www.rainbowsoft.org/。Z-blog代码严谨,前台功能简洁,后台功能强大,这为它的产品安全带来很大的优势,但是在上次的xss漏洞被公布后,80sec在产品中又发现一个严重的跨站脚本攻击漏洞,加上产品设计上的一些问题可能带来严重的后果。

漏洞厂商:http://www.rainbowsoft.org/

漏洞解析:在FUNCTION/c_function.asp中,程序处理UBB标签的时候存在漏洞,导致任何用户可以在目标页面内执行任意js代码,利用该代码恶意用户可以获取目标站点的所有权限。漏洞代码如下:


Dim objRegExp
Set objRegExp=new RegExp
objRegExp.IgnoreCase =True
objRegExp.Global=True

objRegExp.Pattern=”(\[URL\])(([a-zA-Z0-9]+?):\/\/\S+?)(\[\/URL\])”
strContent= objRegExp.Replace(strContent,”$2“)

objRegExp.Pattern=”(\[URL\])(.+?)(\[\/URL\])”
strContent= objRegExp.Replace(strContent,”$2“)

objRegExp.Pattern=”(\[URL=)(([a-zA-Z0-9]+?):\/\/\S+?)(\])(.+?)(\[\/URL\])”
strContent= objRegExp.Replace(strContent,”$5“)

objRegExp.Pattern=”(\[URL=)(\S+?)(\])(\S+?)(\[\/URL\])”
strContent= objRegExp.Replace(strContent,”$4“)

objRegExp.Pattern=”(\[EMAIL\])(\S+\@\S+?)(\[\/EMAIL\])”
strContent= objRegExp.Replace(strContent,”$2“)

objRegExp.Pattern=”(\[EMAIL=)(\S+\@\S+?)(\])(.+?)(\[\/EMAIL\])”
strContent= objRegExp.Replace(strContent,”$4“)

End If

可以看到其中的正则表达式过滤并不严格,这种循环匹配也很容易出现逻辑问题,精心构造代码即可触发跨站脚本漏洞,可以发表评论如下

[URL][URL]http://=''style='c:expression(alert())'[/URL][/URL]

上面代码将循环执行alert(),当然,你也可以引入自己的恶意js执行:)

漏洞状态:该漏洞非常危险,完全不需要任何交互行为即可完成攻击,已经通知官方,请等候官方反应。

随后在7月22日,Zblog官方迅速作出反应,并承认该安全Blogger的发现,第一时间发布了漏洞补丁。

1.2008-7-22号修补了一个XSS漏洞

在Z-Blog和80Sec的努力下成功的修补了一个严重针对IE的XSS漏洞,并就此漏洞向大家表示深深的歉意。

2.Z-Blog 1.8,Z-Blog 1.7的补丁发布(请将解压出来的文件上传至系统的FUNCTION目录下。)



3.Z-Blog 1.8 Spirit Build 80722版下载

更新如下:

修正了一个XSS漏洞

取消了UBB的Email标签转换

修正了一个有可能产生http500错误的地方