漏洞分析

0

高危漏洞

4

中危漏洞

4

低危漏洞

5

警告

文件名 28D22D67A9FA3C6E78F1A823210C2B9D.apk
上传者 hao
文件大小 1.5607080459595MB
MD5 28d22d67a9fa3c6e78f1a823210c2b9d
包名 IAPP.kaifa
Main Activity com.iapp.app.logoActivity
Min SDK 8
Target SDK 21

权限列表

# 名称 说明 提示
0 android.permission.SYSTEM_ALERT_WINDOW 允许应用程序显示系统警报窗口。恶意应用程序可借此掌控整个手机屏幕。 注意

四大组件

组件名称

com.iapp.app.logoActivity
com.iapp.app.run.mian
com.iapp.app.run.main
com.iapp.app.run.main2
com.iapp.app.Webview
com.iapp.app.Videoview
com.iapp.app.DownList
cn.hugo.android.scanner.CaptureActivity

第三方库

# 库名 介绍

静态扫描发现风险点

风险等级 风险名称

中危

该app需要移除大部分日志打印代码。
经扫描该包仍存在大量打日志代码,共发现38处打日志代码.(此处扫描的日志打印代码,是指调用android.util.Log.* 打印的.)
详情如下:

位置: classes.dex
cn.hugo.android.scanner.f;->doInBackground([Ljava/lang/Object;)Ljava/lang/Object;==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
cn.hugo.android.scanner.a.e;->e()Landroid/graphics/Rect;==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
cn.hugo.android.scanner.a.c;->a(Ljava/util/Collection; [Ljava/lang/String;)Ljava/lang/String;==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
cn.hugo.android.scanner.a.c;->a(Landroid/hardware/Camera; Z)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.c.a.ag;->a(Ljava/lang/Object;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
cn.hugo.android.scanner.e;->b()V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.c.a.ag;->a(Ljava/lang/Class; Ljava/lang/String; Ljava/lang/Class;)Ljava/lang/reflect/Method;==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
cn.hugo.android.scanner.c.f;->handleMessage(Landroid/os/Message;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.iapp.app.ek;->c(Landroid/webkit/WebView; Ljava/lang/String; I)Z==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
cn.hugo.android.scanner.e;->c()V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.iapp.app.ek;->b(Landroid/webkit/WebView; Ljava/lang/String; I Ljava/lang/String;)Z==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.iapp.app.ek;->c(Landroid/webkit/WebView; Ljava/lang/String; I)Z==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
cn.hugo.android.scanner.CaptureActivity;->a(Landroid/view/SurfaceHolder;)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.b.a.a.m;->a(Ljava/lang/Object;)V==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
cn.hugo.android.scanner.a.e;->a(I I)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.iapp.UITool.Gifimage.GifView;->a(Z I)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
cn.hugo.android.scanner.c.g;->(Lcn/hugo/android/scanner/CaptureActivity; Ljava/util/Collection; Ljava/util/Map; Ljava/lang/String; Lcom/a/a/t;)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
cn.hugo.android.scanner.a.c;->a(Landroid/hardware/Camera$Parameters; Landroid/graphics/Point;)Landroid/graphics/Point;==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.iapp.app.ek;->b(Landroid/webkit/WebView; Ljava/lang/String; I)Z==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
cn.hugo.android.scanner.a.h;->onPreviewFrame([B Landroid/hardware/Camera;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
cn.hugo.android.scanner.c.c;->handleMessage(Landroid/os/Message;)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.iapp.app.ek;->a(Landroid/webkit/WebView; Ljava/lang/String; I)Z==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.c.a.ah;->b(Ljava/lang/Object;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
cn.hugo.android.scanner.a.c;->a(Landroid/hardware/Camera; Z)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.iapp.app.ek;->b(Landroid/webkit/WebView; Ljava/lang/String; I Ljava/lang/String;)Z==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.c.a.ag;->b(Ljava/lang/Object;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.iapp.app.ek;->a(Landroid/webkit/WebView; Ljava/lang/String; I)Z==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
cn.hugo.android.scanner.a.e;->h()Landroid/graphics/Rect;==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
cn.hugo.android.scanner.a.e;->a(Landroid/view/SurfaceHolder;)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
cn.hugo.android.scanner.a.g;->a()Landroid/hardware/Camera;==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
cn.hugo.android.scanner.a.c;->a(Landroid/hardware/Camera;)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
cn.hugo.android.scanner.a.a;->(Landroid/content/Context; Landroid/hardware/Camera;)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
cn.hugo.android.scanner.CaptureActivity;->surfaceCreated(Landroid/view/SurfaceHolder;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
cn.hugo.android.scanner.c.c;->handleMessage(Landroid/os/Message;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
cn.hugo.android.scanner.a.g;->a()Landroid/hardware/Camera;==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
cn.hugo.android.scanner.a.e;->a(Landroid/view/SurfaceHolder;)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.iapp.app.ek;->b(Landroid/webkit/WebView; Ljava/lang/String; I)Z==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
cn.hugo.android.scanner.a.c;->a(Landroid/hardware/Camera$Parameters; Landroid/graphics/Point;)Landroid/graphics/Point;==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I

中危

检测到10个WebView远程执行漏洞。

位置: classes.dex
com.b.a.a.ac;->C(Ljava.lang.String;)V
com.b.a.a.ac;->h(Ljava.lang.String;)V
com.iapp.app.Aid_jsCode;->call(Ljava.lang.String; Ljava.lang.String;)Ljava.lang.Object;
com.iapp.app.Aid_jsCode;->call(Ljava.lang.String; Ljava.lang.String; Ljava.lang.String;)Ljava.lang.Object;
com.iapp.app.Aid_jsCode;->hsas(Ljava.lang.String; Z)V
com.iapp.app.Aid_jsCode;->src(Ljava.lang.String; Ljava.lang.String;)V
com.iapp.app.Aid_luaCode;->call(Ljava.lang.String; Ljava.lang.String;)Ljava.lang.Object;
com.iapp.app.Aid_luaCode;->call(Ljava.lang.String; Ljava.lang.String; Lorg.keplerproject.luajava.LuaObject;)Ljava.lang.Object;
com.iapp.app.Aid_luaCode;->hsas(Ljava.lang.Object; Z)V
com.iapp.app.ed;->a(Landroid.app.Activity; I)Landroid.webkit.WebView;

Android API < 17之前版本存在远程代码执行安全漏洞,该漏洞源于程序没有正确限制使用addJavaScriptInterface方法,攻击者可以通过Java反射利用该漏洞执行任意Java对象的方法,导致远程代码执行安全漏洞。
(1)API等于高于17的Android系统。出于安全考虑,为了防止Java层的函数被随意调用,Google在4.2版本之后,规定允许被调用的函数必须以@JavascriptInterface进行注解。
(2)API等于高于17的Android系统。建议不要使用addJavascriptInterface接口,以免带来不必要的安全隐患,如果一定要使用该接口,建议使用证书校验。
(3)使用removeJavascriptInterface移除Android系统内部的默认内置接口:searchBoxJavaBridge_、accessibility、accessibilityTraversal。

参考案例:
www.wooyun.org/bugs/wooyun-2015-0140708
www.wooyun.org/bugs/wooyun-2016-0188252
http://drops.wooyun.org/papers/548

参考资料:
http://jaq.alibaba.com/blog.htm?id=48
http://blog.nsfocus.net/android-webview-remote-code-execution-vulnerability-analysis
https://developer.android.com/reference/android/webkit/WebView.html

中危

检测到9条敏感明文信息,建议移除。

位置: classes.dex
'file:///android_asset/' used in: Lcom/iapp/app/el;->a(Ljava/lang/String; Ljava/lang/String;)Z
'http://iapp.yx93.com:8881/' used in: Lcom/iapp/app/dx;->()V
'http://schemas.android.com/apk/res/android' used in: Landroid/support/graphics/drawable/TypedArrayUtils;->hasAttribute(Lorg/xmlpull/v1/XmlPullParser; Ljava/lang/String;)Z
'javascript:{' used in: Lcom/iapp/app/Aid_jsCode;->has(Ljava/lang/String; Ljava/lang/String;)V
'javascript:{' used in: Lcom/iapp/app/Aid_luaCode;->has(Ljava/lang/Object; Ljava/lang/String;)V
'javascript:{' used in: Lcom/b/a/a/ac;->B(Ljava/lang/String;)V
'javascript:{\nvar functionItme = ' used in: Lcom/iapp/app/Aid_jsCode;->b(Lcom/iapp/app/Aid_jsCode; Ljava/lang/String;)V
'javascript:{\nvar functionItme = ' used in: Lcom/b/a/a/f;->invoke(Ljava/lang/Object; Ljava/lang/reflect/Method; [Ljava/lang/Object;)Ljava/lang/Object;
'javascript:{\nvar functionItme = ' used in: Lcom/iapp/app/Aid_jsCode;->a(Lcom/iapp/app/Aid_jsCode; Ljava/lang/String; Ljava/lang/String;)V

中危

检测到9处setSavePassword密码明文存储漏洞。

位置: classes.dex
com.iapp.app.Aid_jsCode;
com.iapp.app.run.mian;
com.iapp.app.ed;
com.b.a.a.ac;
com.iapp.app.Aid_luaCode;
com.iapp.app.Webview;
com.iapp.app.run.main2;
com.iapp.app.run.main;
com.iapp.app.el;

webview的保存密码功能默认设置为true。Webview会明文保存网站上的密码到本地私有文件”databases/webview.db”中。对于可以被root的系统环境或者配合其他漏洞(如webview的同源绕过漏洞),攻击者可以获取到用户密码。
建议:显示设置webView.getSetting().setSavePassword(false)。

参考案例:
www.wooyun.org/bugs/wooyun-2010-021420
www.wooyun.org/bugs/wooyun-2013-020246

参考资料:
http://wolfeye.baidu.com/blog/
www.claudxiao.net/2013/03/android-webview-cache/

低危

检测到1处SecureRandom使用不当。

位置: classes.dex
com.b.a.a.a;->a

SecureRandom的使用不当会导致生成的随机数可被预测,该漏洞存在于Android系统随机生成数字串安全密钥的环节中。该漏洞的生成原因是对SecureRandom类的不正确使用方式导致生成的随机数不随机。建议:
(1)不要使用自定义随机源代替系统默认随机源(推荐)除非有特殊需求,在使用SecureRandom类时,不要调用以下函数:SecureRandom类下SecureRandom(byte[]seed)、setSeed(long seed)和setSeed(byte[]seed)方法。
(2)在调用setSeed方法前先调用任意nextXXX方法。具体做法是调用setSeed方法前先调用一次SecureRandom#nextBytes(byte[]bytes)方法,可以避免默认随机源被替代,详细见参考资料。

参考资料:
https://developer.android.com/reference/java/security/SecureRandom.html
http://drops.wooyun.org/papers/5164
http://jaq.alibaba.com/blog.htm?id=47

低危

检测到3个WebView系统隐藏接口未移除。

位置: classes.dex
com.iapp.app.el;->a(Ljava.lang.String; Ljava.lang.String; Ljava.lang.String; Ljava.lang.String;)Z
com.iapp.app.Aid_jsCode;->a(Landroid.view.View; I Ljava.lang.String; Ljava.lang.StringBuffer; Landroid.webkit.WebView;)V
com.iapp.app.Aid_luaCode;->a(Landroid.view.View; I Ljava.lang.String; Ljava.lang.StringBuffer; Lcom.iapp.app.ef;)V

android webview组件包含3个隐藏的系统接口:searchBoxJavaBridge_,accessibilityTraversal以及accessibility,恶意程序可以利用它们实现远程代码执行。
如果使用了WebView,那么使用WebView.removeJavascriptInterface(String name) API,显示的移除searchBoxJavaBridge_、accessibility、accessibilityTraversal这三个接口。

参考资料:
http://wolfeye.baidu.com/blog/android-webview/
http://blog.csdn.net/u013107656/article/details/51729398
http://wolfeye.baidu.com/blog/android-webview-cve-2014-7224/

低危

检测到1处AES/DES弱加密风险。

位置: classes.dex
com.b.a.a.a;->a(Ljava.lang.String; Ljava.lang.String;)[B

使用AES/DES/DESede加密算法时,如果使用ECB模式,容易受到攻击风险,造成信息泄露。建议在使用AES/DES/DESede加密算法时,应显示指定使用CBC或CFB加密模式

参考资料:
http://blog.csdn.net/u013107656/article/details/51997957
https://developer.android.com/reference/javax/crypto/Cipher.html
http://drops.wooyun.org/tips/15870
https://developer.android.com/training/articles/keystore.html
http://wolfeye.baidu.com/blog/weak-encryption/
http://www.freebuf.com/articles/terminal/99868.html

低危

非debug包,需要通过打包平台proguard脚本,移除大部分系统输出代码。
经扫描该包仍存在大量系统输出代码,共发现2处系统输出代码.(此处扫描的系统输出代码,是指调用System.out.print*输出的,本应在打包平台移除的系统输出代码.)
各个bundle系统输出代码详情如下:

位置: classes.dex
org.keplerproject.luajava.Console;
org.keplerproject.luajava.LuaObject;

警告

检测到5处addFlags使用Intent.FLAG_ACTIVITY_NEW_TASK。

位置: classes.dex
com.iapp.app.Aid_luaCode;->fo
com.b.a.a.ac;->bM
com.iapp.app.Aid_jsCode;->fo
cn.hugo.android.scanner.c.c;->handleMessage
com.iapp.app.DownList;->a

APP创建Intent传递数据到其他Activity,如果创建的Activity不是在同一个Task中打开,就很可能被其他的Activity劫持读取到Intent内容,跨Task的Activity通过Intent传递敏感信息是不安全的。建议:
尽量避免使用包含FLAG_ACTIVITY_NEW_TASK标志的Intent来传递敏感信息。

参考资料:
http://wolfeye.baidu.com/blog/intent-data-leak

警告

检测到15潜在的XSS漏洞。

位置: classes.dex
com.b.a.a.ac;->a(Landroid.view.View; Ljava.lang.String;)V
com.b.a.a.ac;->h(Ljava.lang.String;)V
com.iapp.app.Aid_jsCode;->a(Landroid.view.View; I Ljava.lang.String; Ljava.lang.StringBuffer; Landroid.webkit.WebView;)V
com.iapp.app.Aid_jsCode;->call(Ljava.lang.String; Ljava.lang.String;)Ljava.lang.Object;
com.iapp.app.Aid_jsCode;->call(Ljava.lang.String; Ljava.lang.String; Ljava.lang.String;)Ljava.lang.Object;
com.iapp.app.Aid_jsCode;->nvw(I Ljava.lang.String; Ljava.lang.String; Ljava.lang.String;)Ljava.lang.String;
com.iapp.app.Aid_luaCode;->a(Landroid.view.View; I Ljava.lang.String; Ljava.lang.StringBuffer; Lcom.iapp.app.ef;)V
com.iapp.app.Aid_luaCode;->call(Ljava.lang.String; Ljava.lang.String;)Ljava.lang.Object;
com.iapp.app.Aid_luaCode;->call(Ljava.lang.String; Ljava.lang.String; Lorg.keplerproject.luajava.LuaObject;)Ljava.lang.Object;
com.iapp.app.Aid_luaCode;->nvw(I Ljava.lang.Object; Ljava.lang.String; Ljava.lang.String;)Landroid.view.View;
com.iapp.app.Webview;->onCreate(Landroid.os.Bundle;)V
com.iapp.app.ed;->a(Landroid.app.Activity; I)Landroid.webkit.WebView;
com.iapp.app.run.main2;->a(Landroid.view.View; I Ljava.lang.String;)V
com.iapp.app.run.main;->a(Landroid.view.View; I Ljava.lang.String;)V
com.iapp.app.run.mian;->onCreate(Landroid.os.Bundle;)V

允许WebView执行JavaScript(setJavaScriptEnabled),有可能导致XSS攻击。建议尽量避免使用。
(1)API等于高高于17的Android系统。出于安全考虑,为了防止Java层的函数被随意调用,Google在4.2版本之后,规定允许被调用的函数必须以@JavascriptInterface进行注解。
(2)API等于高高于17的Android系统。建议不要使用addJavascriptInterface接口,以免带来不必要的安全隐患,如果一定要使用该接口,建议使用证书校验。
u(3)使用removeJavascriptInterface移除Android系统内部的默认内置接口:searchBoxJavaBridge_、accessibility、accessibilityTraversal。

参考案例:
www.wooyun.org/bugs/wooyun-2015-0140708
www.wooyun.org/bugs/wooyun-2016-0188252

参考资料:
http://jaq.alibaba.com/blog.htm?id=48
http://blog.nsfocus.net/android-webview-remote-code-execution-vulnerability-analysis

警告

检测到1处IvParameterSpec的使用。

位置: classes.dex
com.b.a.a.b;->a(Ljava.lang.String; Ljava.lang.String;)[B

使用IVParameterSpec函数,如果使用了固定的初始化向量,那么密码文本可预测性高得多,容易受到字典攻击等。建议禁止使用常量初始化矢量构造IVParameterSpec,使用聚安全提供的安全组件。

参考资料:
http://drops.wooyun.org/tips/15870
https://developer.android.com/training/articles/keystore.html
http://wolfeye.baidu.com/blog/weak-encryption/
http://www.freebuf.com/articles/terminal/99868.html

警告

检测到1处socket通信。

位置: classes.dex
Lcom.b.a.a.t;->

Android应用通常使用PF_UNIX、PF_INET、PF_NETLINK等不同domain的socket来进行本地IPC或者远程网络通信,这些暴露的socket代表了潜在的本地或远程攻击面,历史上也出现过不少利用socket进行拒绝服务、root提权或者远程命令执行的案例特别是PF_INET类型的网络socket,可以通过网络与Android应用通信,其原本用于linux环境下开放网络服务,由于缺乏对网络调用者身份或者本地调用者id、permission等细粒度的安全检查机制,在实现不当的情况下,可以突破Android的沙箱限制,以被攻击应用的权限执行命令,通常出现比较严重的漏洞

参考案例:
http://www.wooyun.org/bugs/wooyun-2015-0148406
http://www.wooyun.org/bugs/wooyun-2015-0145365

参考资料:
http://wolfeye.baidu.com/blog/open-listen-port
http://blog.csdn.net/jltxgcy/article/details/50686858
https://www.bigniu.com/article/view/10
http://drops.wooyun.org/mobile/6973

警告

检测到2处使用了加解密算法。密钥处理不当可能会导致信息泄露。

位置: classes.dex
com.b.a.a.b;->a(Ljava.lang.String; Ljava.lang.String;)[B
com.b.a.a.a;->a(Ljava.lang.String; Ljava.lang.String;)[B

参考案例:
http://www.wooyun.org/bugs/wooyun-2010-0105766
http://www.wooyun.org/bugs/wooyun-2015-0162907
http://www.wooyun.org/bugs/wooyun-2010-0187287

参考资料:
http://drops.wooyun.org/tips/15870
https://developer.android.com/training/articles/keystore.html


动态扫描发现风险点

风险等级 风险名称

服务端分析

风险等级 风险名称

警告

检测到?处XSS漏洞。
开发中...

警告

检测到?处XSS跨站漏洞。
开发中...

应用证书