当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2012-08120

漏洞标题:QQ邮箱正文存储型XSS!

相关厂商:腾讯

漏洞作者: shine

提交时间:2012-06-10 10:10

修复时间:2012-07-25 10:11

公开时间:2012-07-25 10:11

漏洞类型:xss跨站脚本攻击

危害等级:高

自评Rank:18

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2012-06-10: 细节已通知厂商并且等待厂商处理中
2012-06-11: 厂商已经确认,细节仅向厂商公开
2012-06-21: 细节向核心白帽子及相关领域专家公开
2012-07-01: 细节向普通白帽子公开
2012-07-11: 细节向实习白帽子公开
2012-07-25: 细节向公众公开

简要描述:

昨天几个编辑器的XSS被说成是对XSS理解有问题,好是难过,也怪哥没有给出一个利用场景,主要是现在看见代码就心烦,今天找到一个利用场景,效果就不一样了,野鸭变凤凰了!

详细说明:

qq邮箱,同样是编辑器超链接的XSS,如果单纯只看此处,确实没有什么意义(其实我是想用这个XSS填充img标签测试XSS的,但你们编辑器填充方法代码难得找,你们自己熟悉代码测试一下(因为img标签没过滤!)),只能攻击自己。
测试浏览器环境:IE6



但处于编辑状态时它就能触发,除了自己写正文能触发外,还有什么地方能触发了?
对!那就是qq邮箱的转发功能会附带原邮件全文,并处于编辑器状态,以下给出一个利用场景:

漏洞证明:


我们可以构造一个转发邮件送Q币活动,为了使用户能够点击触发的网址的区域(触发区域比较大,也容易触发!),就要搞个网址上签名才能送Q币,流程很简单,自己看如图:
填充代码:

<img/src='javascript:{alert(/shine/);}' >










修复方案:

这回有理由去处理那些编辑器超链接的XSS了!哈哈!

版权声明:转载请注明来源 shine@乌云


漏洞回应

厂商回应:

危害等级:低

漏洞Rank:1

确认时间:2012-06-11 11:13

厂商回复:

thanks,经过评估此风险较低,仍然感谢你的反馈。

最新状态:

暂无


漏洞评价:

评论

  1. 2012-06-10 11:24 | shine 认证白帽子 ( 普通白帽子 | Rank:831 漏洞数:77 | coder)

    怎么审核通过了?还以为没人理我了,正在精心构造场景(比上面的描述更真),可以加载外部js,获得当前用户“联系人”列表并提取qq邮箱,初次尝试写个蠕虫!现在唯一的问题就是利用js发送qq邮件,谁可以提供一下发送的js代码?(难得去看源代码)

  2. 2012-06-10 13:28 | shine 认证白帽子 ( 普通白帽子 | Rank:831 漏洞数:77 | coder)

    已解决!每次都忘记当前条件利用,当前就处于发送场景在,为什么要去用js去构造一个发送场景,触发后,在“收件人”处填充邮箱号码(也无需获取“联系人”列表了,可以随机生成一批号码(因为qq号码都是数字(免得用正则去过滤))),然后用js调用"发送"按钮事件就可以了!更简洁!代码: if (document.all){//如果支持ie,默认就有这个事件, document.getElementById('sendbtn').click(); }else { //否则,创建 var evt = document.createEvent("MouseEvents"); evt.initEvent("click", true, true); document.getElementById("sendbtn").dispatchEvent(evt); }所以这个XSS就更好利用了(因为有浏览器兼容问题,所有在填充处多填充几个触发标签即可(因为填充处没有限制长度!))。

  3. 2012-06-11 11:20 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)

    腾讯评估风险方面还是靠谱

  4. 2012-06-11 11:21 | shine 认证白帽子 ( 普通白帽子 | Rank:831 漏洞数:77 | coder)

    哈哈!正好500rank了!

  5. 2012-07-12 10:36 | _Evil ( 普通白帽子 | Rank:418 漏洞数:59 | 万事无他,唯手熟尔。农民也会编程,别指望天...)

    @shine QQ游戏HTML编辑的filterstyle='"background:url(http://"\"); width:expression(alert(document.cookie));"');变:style: '" Narrow? Arial width:expression(alert(document.cookie));??);FONT-FAMILY: ?\?);<div style={left:\0065\0078ression (alert('xss'))}></div>变<DIV (alert(?xss?))}></DIV><DIV style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 12px; PADDING-BOTTOM: 2px; PADDING-TOP: 2px" background:url="background:url" width:expression="width:expression" arial="arial" narrow="narrow">------------------ 原始邮件 ------------------</DIV>改<DIV style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 12px; PADDING-BOTTOM: 2px; PADDING-TOP: 2px" background:url="background:url" width:expression="alert(document.cookie)" arial="arial" narrow="narrow">------------------ 原始邮件 ------------------</DIV>变<DIV style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 12px; PADDING-BOTTOM: 2px; PADDING-TOP: 2px; FONT-FAMILY: Arial Narrow">------------------&nbsp;原始邮件&nbsp;------------------</DIV><img scr="#"/* */onerror=alert(/xss/) width=150></img>变<IMG width=150 scr="#"> <IMG width=150 scr="java&#9;script:alert(/跨站/)">成功插进去不能弹。。。。。<img scr="java script:alert(/跨站/)" width="150">这个也是......... 空格用tab的<div style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 12px; PADDING-BOTTOM: 2px; PADDING-TOP: 2px" narrow="narrow" arial="arial" width:expression="alert(document.cookie)" background:url="background:url">------------------ 原始邮件 ------------------</div>我这样插进去了不能弹...<scr%00ipt>alert(1)</scr%00ipt> 思路一下,插入%00成功插入,不能弹....<STYLE type=text/css>XSS{background-image:url(alert(/xss/));}</STYLE>插入不能弹