漏洞分析

0

高危漏洞

5

中危漏洞

1

低危漏洞

2

警告

文件名 app-release.apk
上传者 admin
文件大小 12.456069946289MB
MD5 da1e9e63c524caa74063af3264bcd81a
包名 com.kyeecmsapp
Main Activity com.kyeecmsapp.MainActivity
Min SDK 19
Target SDK 26

权限列表

# 名称 说明 提示
0 android.permission.ACCESS_COARSE_LOCATION 访问大概的位置源(例如蜂窝网络数据库)以确定手机的大概位置(如果可以)。恶意应用程序可借此确定您所处的大概位置。 注意
1 android.permission.ACCESS_FINE_LOCATION 访问精准的位置源,例如手机上的全球定位系统(如果有)。恶意应用程序可能会借此确定您所处的位置,并可能消耗额外的电池电量。 注意
2 android.permission.SYSTEM_ALERT_WINDOW 允许应用程序显示系统警报窗口。恶意应用程序可借此掌控整个手机屏幕。 注意
3 android.permission.ACCESS_NETWORK_STATE 允许应用程序查看所有网络的状态。 提示
4 android.permission.ACCESS_WIFI_STATE 允许应用程序查看有关WLAN状态的信息。 提示
5 android.permission.CAMERA 允许应用程序使用相机拍照,这样应用程序可随时收集进入相机镜头的图像。 提示
6 android.permission.INTERNET 允许程序访问网络. 提示
7 android.permission.WAKE_LOCK 允许应用程序防止手机进入休眠状态。 提示
8 android.permission.WRITE_EXTERNAL_STORAGE 允许应用程序写入SD卡。 提示

四大组件

组件名称

com.kyeecmsapp.MainActivity
com.facebook.react.devsupport.DevSettingsActivity
com.luck.picture.lib.PictureSelectorActivity
com.luck.picture.lib.PicturePreviewActivity
com.luck.picture.lib.PictureVideoPlayActivity
com.luck.picture.lib.PictureExternalPreviewActivity
com.yalantis.ucrop.UCropActivity
com.yalantis.ucrop.PictureMultiCuttingActivity
com.luck.picture.lib.PicturePlayAudioActivity

android.support.v4.content.FileProvider
com.luck.picture.lib.PictureFileProvider

第三方库

# 库名 介绍
0 me.zhanghai.android.materialprogressbar Material design ProgressBar with consistent appearance
1 okhttp3 An HTTP+SPDY client for Android and Java applications.
2 com.bumptech.glide An image loading and caching library for Android focused on smooth scrolling
3 com.afollestad.materialdialogs Not even AppCompat uses Material theming for AlertDialogs on pre-Lollipop. This is a beautiful and easy solution.
4 com.facebook.imagepipeline An image management library by FaceBook.

静态扫描发现风险点

风险等级 风险名称

中危

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

位置: classes.dex
com.RNFetchBlob.g$1;

当移动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需要移除大部分日志打印代码。
经扫描该包仍存在大量打日志代码,共发现1处打日志代码.(此处扫描的日志打印代码,是指调用android.util.Log.* 打印的.)
详情如下:

位置: classes.dex
com.github.a.a.a;->a(Landroid/content/Context; Landroid/view/View;)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I

中危

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

位置: classes.dex
com.facebook.react.views.webview.ReactWebViewManager$ReactWebView;->setMessagingEnabled(Z)V

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

中危

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

位置: classes.dex
'10.0.2.2' used in: Lcom/facebook/react/modules/systeminfo/a;->a(I)Ljava/lang/String;
'10.0.3.2' used in: Lcom/facebook/react/modules/systeminfo/a;->a(I)Ljava/lang/String;
'data:image' used in: Lcom/bumptech/glide/load/c/e;->a(Ljava/lang/Object;)Z
'data:image' used in: Lcom/bumptech/glide/load/c/e$c$1;->a(Ljava/lang/String;)Ljava/lang/Object;
'data:image/jpeg;base64,' used in: Lcom/reactlibrary/RNSyanImagePickerModule;->getBase64EncodeString(Landroid/graphics/Bitmap;)Ljava/lang/String;
'file:///' used in: Lcom/luck/picture/lib/widget/longimage/SubsamplingScaleImageView;->(Landroid/content/Context; Landroid/util/AttributeSet;)V
'file:///' used in: Lcom/luck/picture/lib/widget/longimage/SubsamplingScaleImageView;->b(Landroid/content/Context; Ljava/lang/String;)I
'file:///' used in: Lcom/luck/picture/lib/widget/longimage/e;->(Landroid/net/Uri;)V
'file:///android_asset/' used in: Lcom/luck/picture/lib/widget/longimage/h;->a(Landroid/content/Context; Landroid/net/Uri;)Landroid/graphics/Point;
'file:///android_asset/' used in: Lcom/luck/picture/lib/widget/longimage/SubsamplingScaleImageView;->(Landroid/content/Context; Landroid/util/AttributeSet;)V
'file:///android_asset/' used in: Lcom/luck/picture/lib/widget/longimage/SubsamplingScaleImageView;->b(Landroid/content/Context; Ljava/lang/String;)I
'file:///android_asset/' used in: Lcom/luck/picture/lib/widget/longimage/g;->a(Landroid/content/Context; Landroid/net/Uri;)Landroid/graphics/Bitmap;
'http://%s/%s' used in: Lcom/facebook/react/devsupport/DevServerHelper;->createResourceURL(Ljava/lang/String; Ljava/lang/String;)Ljava/lang/String;
'http://%s/%s.%s?platform=android&dev=%s&minify=%s' used in: Lcom/facebook/react/devsupport/DevServerHelper;->createBundleURL(Ljava/lang/String; Lcom/facebook/react/devsupport/DevServerHelper$BundleType; Ljava/lang/String;)Ljava/lang/String;
'http://%s/inspector/device?name=%s&app=%s' used in: Lcom/facebook/react/devsupport/DevServerHelper;->getInspectorDeviceUrl()Ljava/lang/String;
'http://%s/launch-js-devtools' used in: Lcom/facebook/react/devsupport/DevServerHelper;->createLaunchJSDevtoolsCommandUrl()Ljava/lang/String;
'http://%s/nuclide/attach-debugger-nuclide?title=%s&app=%s&device=%s' used in: Lcom/facebook/react/devsupport/DevServerHelper;->getInspectorAttachUrl(Ljava/lang/String;)Ljava/lang/String;
'http://%s/onchange' used in: Lcom/facebook/react/devsupport/DevServerHelper;->createOnChangeEndpointUrl()Ljava/lang/String;
'http://%s/open-stack-frame' used in: Lcom/facebook/react/devsupport/DevServerHelper;->createOpenStackFrameURL(Ljava/lang/String;)Ljava/lang/String;
'http://%s/status' used in: Lcom/facebook/react/devsupport/DevServerHelper;->createPackagerStatusURL(Ljava/lang/String;)Ljava/lang/String;
'http://%s/symbolicate' used in: Lcom/facebook/react/devsupport/DevServerHelper;->createSymbolicateURL(Ljava/lang/String;)Ljava/lang/String;
'http://schemas.android.com/apk/res/android' used in: Landroid/support/v4/content/a/c;->a(Lorg/xmlpull/v1/XmlPullParser; Ljava/lang/String;)Z
'http://www.android.com/' used in: Lcom/facebook/k/f;->a(Ljava/lang/String;)V
'javascript:(function () {var event;var data = ' used in: Lcom/facebook/react/views/webview/ReactWebViewManager;->receiveCommand(Landroid/webkit/WebView; I Lcom/facebook/react/bridge/ar;)V
'javascript:(function() {\n' used in: Lcom/facebook/react/views/webview/ReactWebViewManager$ReactWebView;->a()V
'javascript:(window.originalPostMessage = window.postMessage,window.postMessage = function(data) {__REACT_WEB_VIEW_BRIDGE.postMessage(String(data));})' used in: Lcom/facebook/react/views/webview/ReactWebViewManager$ReactWebView;->b()V

中危

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

位置: classes.dex
com.facebook.react.views.webview.ReactWebViewManager;
com.facebook.react.views.webview.ReactWebViewManager$ReactWebView;

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处主机名弱校验检测漏洞。

位置: classes.dex
com.RNFetchBlob.g$2;->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

警告

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

位置: classes.dex
com.facebook.react.modules.intent.IntentModule;->canOpenURL
com.facebook.react.modules.intent.IntentModule;->openURL

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

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

警告

检测到2处provider的grantUriPermissions设置为true。
android.support.v4.content.FileProvider
com.luck.picture.lib.PictureFileProvider


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

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


动态扫描发现风险点

风险等级 风险名称

服务端分析

风险等级 风险名称

警告

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

警告

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

应用证书