漏洞分析

0

高危漏洞

6

中危漏洞

7

低危漏洞

6

警告

文件名 狼人小島.apk
上传者 admin' or 1=1-
文件大小 5.5134572982788MB
MD5 ee0fa851cc151ea54c90edf1dad1cb0d
包名 com.langren.bibi
Main Activity com.shenqi.langren.mvp.activity.WelcomeActivity
Min SDK 16
Target SDK 27

权限列表

# 名称 说明 提示
0 android.permission.CALL_PHONE 允许应用程序在您不介入的情况下拨打电话。恶意应用程序可借此在您的话费单上产生意外通话费。请注意,此权限不允许应用程序拨打紧急呼救电话。 警告
1 android.permission.READ_PHONE_STATE 允许应用程序访问设备的手机功能。有此权限的应用程序可确定此手机的号码和序列号,是否正在通话,以及对方的号码等。 注意
2 android.permission.ACCESS_NETWORK_STATE 允许应用程序查看所有网络的状态。 提示
3 android.permission.ACCESS_WIFI_STATE 允许应用程序查看有关WLAN状态的信息。 提示
4 android.permission.INTERNET 允许程序访问网络. 提示
5 android.permission.VIBRATE 允许应用程序控制振动器。 提示
6 android.permission.WAKE_LOCK 允许应用程序防止手机进入休眠状态。 提示
7 android.permission.WRITE_EXTERNAL_STORAGE 允许应用程序写入SD卡。 提示

四大组件

组件名称

com.shenqi.langren.mvp.activity.WelcomeActivity
com.shenqi.langren.MainActivity
com.shenqi.langren.mvp.activity.ContentActivity
com.shenqi.langren.mvp.activity.ModelDetailActivity
com.shenqi.langren.mvp.activity.VideoDetailActivity
com.shenqi.langren.mvp.activity.PayActivity
com.shenqi.langren.mvp.activity.SerchVideoActivity
com.shenqi.langren.mvp.activity.PlayVideoActivity
com.shenqi.langren.mvp.activity.VideoControlActivity
com.shenqi.langren.mvp.activity.ZhiBoActivity
com.allenliu.versionchecklib.core.VersionDialogActivity
com.allenliu.versionchecklib.core.PermissionDialogActivity
com.allenliu.versionchecklib.v2.ui.UIActivity
com.allenliu.versionchecklib.v2.ui.DownloadingActivity
com.allenliu.versionchecklib.v2.ui.DownloadFailedActivity

com.allenliu.versionchecklib.core.MyService
com.allenliu.versionchecklib.v2.ui.VersionService

com.allenliu.versionchecklib.core.VersionFileProvider

第三方库

# 库名 介绍
0 android.support.transition A backport of the new Transitions API for Android.
1 retrofit2 Type-safe REST client for Android and Java by Square, Inc.
2 com.bigkoo.convenientbanner Simple and convenient banner, loop viewpager with 3D effects
3 rx RxJava – Reactive Extensions for the JVM – a library for composing asynchronous and event-based programs using observable sequences for the Java VM.
4 okhttp3 An HTTP+SPDY client for Android and Java applications.
5 com.bumptech.glide An image loading and caching library for Android focused on smooth scrolling
6 butterknife View "injection" library for Android.
7 com.qiniu.android Qiniu Resource (Cloud) Storage SDK for Android
8 com.google.gson A Java serialization library that can convert Java Objects into JSON and back.
9 android.support.multidex DEPRECATED

静态扫描发现风险点

风险等级 风险名称

中危

检测到当前标志被设置成true或没设置,这会导致adb调试备份允许恶意攻击者复制应用程序数据,造成数据泄露。

中危

检测到1处证书弱校验漏洞。

位置: classes.dex
com.allenliu.versionchecklib.core.http.a$a;

当移动App客户端使用https或ssl/tls进行通信时,如果不校验证书的可信性,将存在中间人攻击漏洞,可导致信息泄露,传输数据被篡改,甚至通过中间人劫持将原有信息替换成恶意链接或恶意代码程序,以达到远程控制等攻击意图。建议:
对SSL证书进行强校验,包括签名CA是否合法、证书是否是自签名、主机域名是否匹配、证书是否过期等。

参考案例:
www.wooyun.org/bugs/wooyun-2014-079358

参考资料:
http://drops.wooyun.org/tips/3296
http://wolfeye.baidu.com/blog/webview-ignore-ssl-error/
https://jaq.alibaba.com/blog.htm?id=60

中危

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

位置: classes.dex
com.bumptech.glide.load.engine.b;->a(Ljava/lang/String; J Lcom/bumptech/glide/load/b;)V==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.pili.pldroid.player.a.b;->b(Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.pili.pldroid.player.a.b;->c(Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.king.base.util.LogUtils;->v(Ljava/lang/String;)V==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.engine.a;->a(Ljava/lang/String; J)V==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.king.base.util.LogUtils;->i(Ljava/lang/String;)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.engine.a.f;->b(I)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.resource.bitmap.ImageHeaderParser;->a(Lcom/bumptech/glide/load/resource/bitmap/ImageHeaderParser$a;)I==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.engine.a.f;->a(I)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.allenliu.versionchecklib.b.a;->a(Ljava/lang/String;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.g.a;->b()[B==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.b.a;->f()Landroid/graphics/Bitmap;==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.request.b.k$a$a;->onPreDraw()Z==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
org.greenrobot.eventbus.util.ErrorDialogConfig;->getMessageIdForThrowable(Ljava/lang/Throwable;)I==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.allenliu.versionchecklib.core.VersionDialogActivity;->onCreate(Landroid/os/Bundle;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.king.base.util.LogUtils;->e(Ljava/lang/String;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
android.arch.lifecycle.e;->d()V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.engine.a.f;->d()V==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.request.GenericRequest;->a(Ljava/lang/String;)V==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.a.f;->a(Ljava/net/HttpURLConnection;)Ljava/io/InputStream;==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.engine.a.f;->b(I)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.king.base.util.LogUtils;->e(Ljava/lang/Throwable;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.jude.easyrecyclerview.swipe.SwipeRefreshLayout;->onTouchEvent(Landroid/view/MotionEvent;)Z==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.shenqi.langren.mvp.activity.ZhiBoActivity$4;->a(I I)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.shenqi.langren.mvp.b.e$2;->a(Lcom/shenqi/langren/bean/ReristerResult;)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.pili.pldroid.player.a.b;->a(Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.resource.bitmap.b;->a(Lcom/bumptech/glide/load/engine/i; Ljava/io/OutputStream;)Z==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.king.base.util.LogUtils;->v(Ljava/lang/Throwable;)V==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.resource.bitmap.p;->a(Landroid/graphics/Bitmap; Lcom/bumptech/glide/load/engine/a/c; I I)Landroid/graphics/Bitmap;==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.jude.easyrecyclerview.EasyRecyclerView;->log(Ljava/lang/String;)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.jude.easyrecyclerview.adapter.RecyclerArrayAdapter;->log(Ljava/lang/String;)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.king.base.util.LogUtils;->d(Ljava/lang/Throwable;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.jude.easyrecyclerview.adapter.DefaultEventDelegate;->log(Ljava/lang/String;)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.allenliu.versionchecklib.core.VersionDialogActivity;->onNewIntent(Landroid/content/Intent;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.king.base.util.LogUtils;->i(Ljava/lang/Throwable;)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.engine.a.f;->a(Landroid/graphics/Bitmap;)Z==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.king.base.util.LogUtils;->w(Ljava/lang/Throwable;)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.engine.a.f;->a()V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.engine.EngineRunnable;->e()Lcom/bumptech/glide/load/engine/i;==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.resource.c.j;->a(Lcom/bumptech/glide/load/engine/i; Ljava/io/OutputStream;)Z==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.engine.b.i;->(Landroid/content/Context; Landroid/app/ActivityManager; Lcom/bumptech/glide/load/engine/b/i$b;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.manager.j;->handleMessage(Landroid/os/Message;)Z==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.resource.bitmap.RecyclableBufferedInputStream;->a(Ljava/io/InputStream; [B)I==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
org.greenrobot.eventbus.util.ExceptionToResourceMapping;->mapThrowable(Ljava/lang/Throwable;)Ljava/lang/Integer;==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.engine.a.f;->b(I I Landroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.engine.a.f;->b(I I Landroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.king.base.util.LogUtils;->w(Ljava/lang/String;)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.c.a;->c()V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.king.base.util.LogUtils;->d(Ljava/lang/String;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
butterknife.ButterKnife;->b(Ljava/lang/Object; Landroid/view/View;)Lbutterknife/Unbinder;==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.resource.bitmap.ImageHeaderParser;->d()[B==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.jude.easyrecyclerview.swipe.SwipeRefreshLayout;->onInterceptTouchEvent(Landroid/view/MotionEvent;)Z==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
butterknife.ButterKnife;->a(Ljava/lang/Class;)Ljava/lang/reflect/Constructor;==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.e;->a(Ljava/lang/Class; Ljava/lang/Class; Landroid/content/Context;)Lcom/bumptech/glide/load/b/l;==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I

中危

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

位置: classes.dex
'http://pic3.16pic.com/00/14/80/16pic_1480733_b.jpg' used in: Lcom/shenqi/langren/c/f;->a()Ljava/util/List;
'http://schemas.android.com/apk/res/android' used in: Landroid/support/v4/content/res/TypedArrayUtils;->hasAttribute(Lorg/xmlpull/v1/XmlPullParser; Ljava/lang/String;)Z
'https://ggff.7sports.cn/' used in: Lcom/shenqi/langren/App;->onCreate()V
'file:///android_asset/' used in: Lcom/bumptech/glide/load/b/a;->()V

中危

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

位置: classes.dex
com.shenqi.langren.mvp.activity.PayActivity;
com.king.base.fragment.WebFragment;

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处app通用签名漏洞。
路径:META-INF\CERT.RSA

通用签名存在以下风险:
(1)如果攻击者的应用包名与目标应用相同,又使用了相同的密钥对应用进行签名,攻击者的应用就可以替换掉目标应用(2)另外目标应用的自定义权限android:protectionlevel为“signature”或者“signatureOrSystem”时,保护就形同虚设(3)如果设备使用的是第三方ROM,而第三方ROM的系统也是用AOSP默认的签名,那么使用如果使用系统级签名文件签名过的应用,权限就得到了提升对于普通开发者如果自己的签名证书泄露也可能发生(1)、(2)条所提到的风险

参考资料:
http://docs.anysdk.com/AndroidSign
http://blog.csdn.net/jiangwei0910410003/article/details/50402000?spm=a313e.7916648.0.0.Nbaf0K
http://www.ruanyifeng.com/blog/2011/08/what_is_a_digital_signature.html?spm=a313e.7916648.0.0.Nbaf0K
http://jaq.alibaba.com/community/art/show?articleid=457

低危

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

位置: classes.dex
com.king.base.fragment.WebFragment;->initData()V
com.shenqi.langren.mvp.activity.PayActivity;->g()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/

低危

检测到2处使用了DES弱加密算法。

位置: classes.dex
'DES/ECB/PKCS5Padding' used in: Lcom/qiniu/android/dns/http/DnspodEnterprise;->decrypt(Ljava/lang/String;)Ljava/lang/String;
'DES/ECB/PKCS5Padding' used in: Lcom/qiniu/android/dns/http/DnspodEnterprise;->encrypt(Ljava/lang/String;)Ljava/lang/String;

使用弱加密算法会大大增加黑客攻击的概率,黑客可能会破解隐私数据、猜解密钥、中间人攻击等,造成隐私信息的泄漏,甚至造成财产损失。建议使用AES加密算法。

参考资料:
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处Intent Scheme URI漏洞。

位置: classes.dex
Lcom/shenqi/langren/mvp/activity/PayActivity$2;->shouldOverrideUrlLoading(Landroid/webkit/WebView; Ljava/lang/String;)Z


Intent Scheme URI是一种特殊的URL格式,用来通过Web页面启动已安装应用的Activity组件,大多数主流浏览器都支持此功能。如果在app中,没有检查获取到的load_url的值,攻击者可以构造钓鱼网站,诱导用户点击加载,就可以盗取用户信息。所以,对Intent URI的处理不当时,就会导致基于Intent的攻击。建议:
如果使用了Intent.parseUri函数,获取的intent必须严格过滤,intent至少包含addCategory(“android.intent.category.BROWSABLE”),setComponent(null),setSelector(null)3个策略。

参考资料:
http://wolfeye.baidu.com/blog/intent-scheme-url/
http://drops.wooyun.org/papers/2893
http://drops.wooyun.org/mobile/15202

低危

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

位置: classes.dex
Lcom/qiniu/android/dns/http/DnspodEnterprise;->decrypt(Ljava/lang/String;)Ljava/lang/String;
Lcom/qiniu/android/dns/http/DnspodEnterprise;->encrypt(Ljava/lang/String;)Ljava/lang/String;

使用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脚本,移除大部分系统输出代码。
经扫描该包仍存在大量系统输出代码,共发现7处系统输出代码.(此处扫描的系统输出代码,是指调用System.out.print*输出的,本应在打包平台移除的系统输出代码.)
各个bundle系统输出代码详情如下:

位置: classes.dex
com.bumptech.glide.a.a;
rx.internal.util.RxRingBuffer;
rx.exceptions.CompositeException$b;
rx.internal.util.RxJavaPluginUtils;
rx.internal.util.IndexedRingBuffer;
org.greenrobot.eventbus.Logger$SystemOutLogger;
com.king.base.util.LogUtils;

低危

检测到1处主机名弱校验检测漏洞。

位置: classes.dex
com.allenliu.versionchecklib.core.http.a$b;->verify(Ljava.lang.String; Ljavax.net.ssl.SSLSession;)Z

自定义HostnameVerifier类,却不实现其verify方法验证域名直接返回true,直接接受任意域名。建议:
对SSL证书进行强校验,包括签名CA是否合法、证书是否是自签名、主机域名是否匹配、证书是否过期等。

参考资料:
http://drops.wooyun.org/tips/3296
https://www.91ri.org/12534.html

低危

检测到1处地方在自定义实现的WebViewClient类在onReceivedSslError调用proceed()方法。

位置: classes.dex
com.shenqi.langren.mvp.activity.PayActivity$2;->onReceivedSslError(Landroid.webkit.WebView; Landroid.webkit.SslErrorHandler; Landroid.net.http.SslError;)V

Android WebView组件加载网页发生证书认证错误时,会调用WebViewClient类的onReceivedSslError方法,如果该方法实现调用了handler.proceed()来忽略该证书错误,则会受到中间人攻击的威胁,可能导致隐私泄露。建议:
当发生证书认证错误时,采用默认的处理方法handler.cancel(),停止加载问题页面当发生证书认证错误时,采用默认的处理方法handler.cancel(),停止加载问题页面。

参考案例:
http://www.wooyun.org/bugs/wooyun-2010-0109266

参考资料:
https://jaq.alibaba.com/blog.htm?id=60
http://wolfeye.baidu.com/blog/webview-ignore-ssl-error/

警告

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

位置: classes.dex
com.allenliu.versionchecklib.v2.ui.VersionService;->e
com.allenliu.versionchecklib.v2.ui.VersionService;->f
com.king.base.util.SystemUtils;->sendSMS
com.allenliu.versionchecklib.b.c;->a
com.allenliu.versionchecklib.core.AVersionService;->h
com.allenliu.versionchecklib.core.AVersionService;->a
com.king.base.util.SystemUtils;->call

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

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

警告

检测到1个导出的组件接收其他app的消息,这些组件会被其他app引用并导致dos攻击。

service com.allenliu.versionchecklib.core.MyService

建议:
(1)最小化组件暴露。对不会参与跨应用调用的组件建议显示添加android:exported="false"属性。
(2)设置组件访问权限。对provider设置权限,同时将权限的protectionLevel设置为"signature"或"signatureOrSystem"。
(3)组件传输数据验证。对组件之间,特别是跨应用的组件之间的数据传入与返回做验证和增加异常处理,防止恶意调试数据传入,更要防止敏感数据返回。

参考案例:
http://www.wooyun.org/bugs/wooyun-2010-0169746
http://www.wooyun.org/bugs/wooyun-2010-0104965

参考资料:
http://jaq.alibaba.com/blog.htm?spm=0.0.0.0.Wz4OeC&id=55
《Android安全技术解密与防范》

警告

检测到2潜在的XSS漏洞。

位置: classes.dex
com.king.base.fragment.WebFragment;->initData()V
com.shenqi.langren.mvp.activity.PayActivity;->g()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处provider的grantUriPermissions设置为true。
com.allenliu.versionchecklib.core.VersionFileProvider


grant-uri-permission若设置为true,可被其它程序员通过uri访问到content provider的内容,容易造成信息泄露。

参考资料:
https://security.tencent.com/index.php/blog/msg/6

警告

检测到1处socket通信。

位置: classes.dex
Lcom.qiniu.android.dns.local.Resolver;->udpCommunicate

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

警告

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

位置: classes.dex
com.qiniu.android.dns.http.DnspodEnterprise;->(Ljava.lang.String; Ljava.lang.String; Ljava.lang.String; I)V

参考案例:
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跨站漏洞。
开发中...

应用证书