<pre id="vvttv"><mark id="vvttv"><progress id="vvttv"></progress></mark></pre>
    <pre id="vvttv"></pre>

      <p id="vvttv"></p>

          <p id="vvttv"></p>

                <p id="vvttv"></p>

                <pre id="vvttv"><cite id="vvttv"><progress id="vvttv"></progress></cite></pre>

                  <output id="vvttv"><dfn id="vvttv"><th id="vvttv"></th></dfn></output>

                    <p id="vvttv"></p>

                    原文地址: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!

                      <pre id="vvttv"><mark id="vvttv"><progress id="vvttv"></progress></mark></pre>
                      <pre id="vvttv"></pre>

                        <p id="vvttv"></p>

                            <p id="vvttv"></p>

                                  <p id="vvttv"></p>

                                  <pre id="vvttv"><cite id="vvttv"><progress id="vvttv"></progress></cite></pre>

                                    <output id="vvttv"><dfn id="vvttv"><th id="vvttv"></th></dfn></output>

                                      <p id="vvttv"></p>

                                      这里只有精品视频