安卓微信、QQ自带浏览器 UXSS 漏洞

注:PDF报告原文下载链接

Author: hei@knownsec.com

Date: 2016-02-29

一、漏洞描述

在安卓平台上的微信及QQ自带浏览器均使用的QQ浏览器X5内核,在处理ip及域名hostnames存在逻辑缺陷,从而绕过浏览器策略导致UXSS漏洞。

二、PoC代码及简单分析

PoC.htm的代码如下:

 
 
 
 
1

<iframe src=‘http://1.1.1.1..qq.com'><iframe>

当安卓手机用户使用微信或QQ访问POC.htm时,真实请求并解析执行的是http://1.1.1.1/..qq.com/ 页面代码如下:

 
 
 
 
1
2
3
4
5

<script>
alert('document.domain:'+document.domain);
document.domain ='qq.com';
alert(document.domain);
</script>

也就是说当遇到 ip地址+“.”+根域的URL自动根据IP地址结构分割URL并访问该IP地址,而浏览器解析的JavaScript代码则按当前的document.URL来处理,会认为当前的document.domain为根域的子域。

三、漏洞演示

测试POC.htm 微信、QQ扫描或者点击访问URL

 

注:微信版本号为 6.3.8   QQ版本号为 v6.1.0.2635

四、漏洞利用思路

  1. 通过设置document.domain来实现跨域;
  2. 结合flash的crossdomain.xml的设置来进行跨域;
  3. 利用html5或者其他第三方插件如(jre)等可能实现跨域。

五、可能的影响面及修复建议

最早我发现该漏洞的时候测试安卓QQ浏览器是受到影响的(后面测试失败),所以该漏洞可能影响到其他调用QQ浏览器内核的产品线,所以建议在QQ浏览器X5内核心上修复处理该漏洞。具体修复可以判断处理好IP结构符号”.”。

六、漏洞时间线

  • 2015年10月            发现安卓QQ浏览器受该漏洞影响
  • 2015年12月            发现安卓QQ浏览器不能触发,但微信、QQ等产品能触发
  • 2015年12月26日    漏洞报告提交给TSRC http://security.tencent.com/
  • 2015年12月28日    TSRC确认该漏洞
  • 2016年01月20日    TSRC反馈漏洞已修复
  • 2016年02月29日    对外公布漏洞报告

最新文章

  1. jquery属性选择器
  2. angular源码分析:injector.js文件分析——angular中的依赖注入式如何实现的(续)
  3. 用FineReport做的共建共享填报系统
  4. iOS开发小技巧--实现将图片保存到本地相册
  5. 通过SSIS监控远程服务器Windows服务并发送邮件报警!
  6. C语言中的经典例题用javascript怎么解?(一)
  7. 在Ubuntu Kylin下安装QQ教程
  8. unknown software exception
  9. svn add后的数据如何取消-svn revert??--zz
  10. Android之ActionBar学习
  11. [LeetCode][Python]Add Two Numbers
  12. 富文本NSAttributeString
  13. 1、Mysql无法创建外键的原因 2、MySql 外键约束 之CASCADE、SET NULL、RESTRICT、NO ACTION分析和作用
  14. Mysql查看表的建表语句
  15. 使用Metasploit渗透攻击windows系统(二)
  16. sqlite3 的一些整理和补充
  17. 玩转X-CTR100 l STM32F4 l X-CTR100与树莓派搭建机器人平台
  18. python3 中文乱码,UnicodeEncodeError: &#39;latin-1&#39; codec can&#39;t encode characters in position 10-13: ordinal not in range(256)
  19. jeesite快速开发平台(四)----数据库各表一览
  20. 2.Python3标准库--文本

热门文章

  1. vue &amp; button &amp; refs &amp; click &amp; bug
  2. IE userdata 原理 应用 详解
  3. Linux下如何确认磁盘是否为SSD
  4. USACO Section 1.5 Prime Palindromes 解题报告
  5. java整形中的缓存机制
  6. POJ 1966 Cable TV Network 【经典最小割问题】
  7. RabbitMQ 中 Connection 和 Channel 详解
  8. 压缩前端文件(html, css, js)
  9. linux 中 virtualenvwrapper的使用
  10. gulp+webpack配置