首先我不得不道歉,上周六早上给出了百度空间XSS漏洞的PoC代码,结果过了一个周末,到处是所谓“强制加链接教程”的转载。从百度空间吧的帖子看,有一些网友的空间已经被强制加了链接。利用这个漏洞的蠕虫也出来了。好在百度已经打了补丁,现有的PoC代码已经无法工作了。再次赞一次百度的迅速反应 :)
百度此次推出的补丁,过滤了CSS文本中的"javascript"和"expression"字符串,不过仍然有些小缺陷,还是可以绕过的。比如,把"javascript"分行来写,
#header {background:url(j
avascript:alert('script injected'))}
这样,目前的过滤模块就识别不出来了,但IE仍然可以正常解析,脚本依然会运行。
另外,自定义CSS模块还有另外一个脚本注入漏洞:系统把CSS内容显示在一个文本框(textarea)中,如果CSS文本中包含""字串,那么系统会把它错误的认为是textarea结束标记,而""以后的CSS内容则被当作HTML代码处理。比如下面的CSS定义,
#header {
系统在显示CSS内容时,脚本将会被执行。这个漏洞的危害程度不大,因为用户自己是不会把CSS写成这个样子的,而且访问者在浏览用户页面时脚本也不会执行。但是,上文已经提到,目前的补丁还不能完全解决javascript和expression的过滤问题,所以恶意代码仍然有机会修改用户的CSS。如果CSS开头被改成下面这个样子,那么用户将无法通过百度空间系统恢复他原来的CSS,
#header {
希望百度工程师再接再厉 :)
把"javascript"分行来写,
#header {background:url(j
avascript:alert('script injected'))}
这样,目前的过滤模块就识别不出来了,但IE仍然可以正常解析,脚本依然会运行。
真的吗? 要试一试 怪不得老不成功!!