漏洞分析

0

高危漏洞

6

中危漏洞

3

低危漏洞

2

警告

文件名 03ab27eb23933d18d84758ea3f1bc5374097943c.apk
上传者 carlhe
文件大小 3.7609930038452MB
MD5 f8de79d4e3bbe0ec605291300f4372f0
包名 com.shwuye.android.app2
Main Activity com.wyweb.zhengwu.app.WelcomeActivity
Min SDK 15
Target SDK 25

权限列表

# 名称 说明 提示
0 android.permission.ACCESS_COARSE_LOCATION 访问大概的位置源(例如蜂窝网络数据库)以确定手机的大概位置(如果可以)。恶意应用程序可借此确定您所处的大概位置。 注意
1 android.permission.ACCESS_FINE_LOCATION 访问精准的位置源,例如手机上的全球定位系统(如果有)。恶意应用程序可能会借此确定您所处的位置,并可能消耗额外的电池电量。 注意
2 android.permission.ACCESS_FINE_LOCATION 访问精准的位置源,例如手机上的全球定位系统(如果有)。恶意应用程序可能会借此确定您所处的位置,并可能消耗额外的电池电量。 注意
3 android.permission.RECORD_AUDIO 允许应用程序访问录音路径。 注意
4 android.permission.SYSTEM_ALERT_WINDOW 允许应用程序显示系统警报窗口。恶意应用程序可借此掌控整个手机屏幕。 注意
5 android.permission.ACCESS_NETWORK_STATE 允许应用程序查看所有网络的状态。 提示
6 android.permission.ACCESS_WIFI_STATE 允许应用程序查看有关WLAN状态的信息。 提示
7 android.permission.CAMERA 允许应用程序使用相机拍照,这样应用程序可随时收集进入相机镜头的图像。 提示
8 android.permission.CHANGE_WIFI_STATE 允许应用程序连接到WLAN接入点以及与WLAN接入点断开连接,并对配置的WLAN网络进行更改。 提示
9 android.permission.CLEAR_APP_CACHE 允许应用程序通过删除应用程序缓存目录中的文件释放手机存储空间。通常此权限只适用于系统进程。 提示
10 android.permission.DISABLE_KEYGUARD 允许应用程序停用键锁和任何关联的密码安全设置。例如,在手机上接听电话时停用键锁,在通话结束后重新启用键锁。 提示
11 android.permission.FLASHLIGHT 允许应用程序控制闪光灯。 提示
12 android.permission.INTERNET 允许程序访问网络. 提示
13 android.permission.MOUNT_UNMOUNT_FILESYSTEMS 允许应用程序装载和卸载可移动存储器的文件系统。 提示
14 android.permission.READ_LOGS 允许应用程序从系统的各日志文件中读取信息。这样应用程序可以发现您的手机使用情况,但这些信息不应包含任何个人信息或保密信息。 提示
15 android.permission.VIBRATE 允许应用程序控制振动器。 提示
16 android.permission.WAKE_LOCK 允许应用程序防止手机进入休眠状态。 提示
17 android.permission.WRITE_EXTERNAL_STORAGE 允许应用程序写入SD卡。 提示
18 android.permission.WRITE_EXTERNAL_STORAGE 允许应用程序写入SD卡。 提示

四大组件

组件名称

com.wyweb.zhengwu.app.MainActivity
com.wyweb.zhengwu.app.LineViewActivity
com.wyweb.zhengwu.app.ImageGalleryActivity
com.wyweb.zhengwu.app.WelcomeActivity
com.wyweb.zhengwu.app.Main2Activity
com.wyweb.zhengwu.app.LookActivity
com.wyweb.zhengwu.app.LoginActivity
com.lzy.imagepicker.ui.ImageBaseActivity
com.lzy.imagepicker.ui.ImageGridActivity
com.lzy.imagepicker.ui.ImageCropActivity
com.lzy.imagepicker.ui.ImagePreviewActivity
com.lzy.ninegrid.preview.ImagePreviewActivity

com.wyweb.zhengwu.app.utils.UpDataService

android.support.v4.content.FileProvider

第三方库

# 库名 介绍
0 com.alibaba.fastjson Fast JSON Processor https://github.com/alibaba/fastjson/wiki
1 android.support.transition A backport of the new Transitions API for Android.
2 com.github.gcacace.signaturepad A custom Android View for drawing smooth signatures
3 okhttp3 An HTTP+SPDY client for Android and Java applications.
4 com.pnikosis.materialishprogress A material style progress wheel compatible with 2.3
5 com.bumptech.glide An image loading and caching library for Android focused on smooth scrolling
6 uk.co.senab.photoview Implementation of ImageView for Android that supports zooming, by various touch gestures.
7 com.google.gson A Java serialization library that can convert Java Objects into JSON and back.

静态扫描发现风险点

风险等级 风险名称

中危

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

中危

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

位置: classes.dex
com.lzy.okgo.https.HttpsUtils$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需要移除大部分日志打印代码。
经扫描该包仍存在大量打日志代码,共发现78处打日志代码.(此处扫描的日志打印代码,是指调用android.util.Log.* 打印的.)
详情如下:

位置: classes.dex
com.wyweb.zhengwu.app.MainActivity;->checkTokenAvailable()V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.wyweb.zhengwu.app.fragment.FristFragment;->startCamera()V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.wyweb.zhengwu.app.BroadReceiver;->onReceive(Landroid/content/Context; Landroid/content/Intent;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.manager.RequestManagerRetriever;->handleMessage(Landroid/os/Message;)Z==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.wyweb.zhengwu.app.LoginActivity$7;->onResponse(Lokhttp3/Call; Lokhttp3/Response;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.wyweb.zhengwu.app.fragment.FristFragment;->JsBridge(Ljava/lang/String; Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.resource.bitmap.TransformationUtils;->fitCenter(Landroid/graphics/Bitmap; Lcom/bumptech/glide/load/engine/bitmap_recycle/BitmapPool; I I)Landroid/graphics/Bitmap;==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.wyweb.zhengwu.app.Main2Activity;->JsBridge(Ljava/lang/String; Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
uk.co.senab.photoview.log.LoggerDefault;->w(Ljava/lang/String; Ljava/lang/String;)I==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.wyweb.zhengwu.app.LoginActivity;->JsBridge(Ljava/lang/String; Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.engine.bitmap_recycle.LruBitmapPool;->clearMemory()V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.wyweb.zhengwu.app.utils.PicutrueUtils;->SaveBitmap(Landroid/graphics/Bitmap;)Ljava/io/File;==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.request.target.ViewTarget$SizeDeterminer$SizeDeterminerLayoutListener;->onPreDraw()Z==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.engine.DecodeJob;->logWithTimeAndKey(Ljava/lang/String; J)V==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.wyweb.zhengwu.app.LoginActivity;->update()V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.wyweb.zhengwu.app.fragment.UserFragment;->JsBridge(Ljava/lang/String; Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.lzy.okgo.utils.OkLogger;->w(Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.Glide;->getPhotoCacheDir(Landroid/content/Context; Ljava/lang/String;)Ljava/io/File;==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.engine.cache.MemorySizeCalculator;->(Landroid/content/Context; Landroid/app/ActivityManager; Lcom/bumptech/glide/load/engine/cache/MemorySizeCalculator$ScreenDimensions;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.wyweb.zhengwu.app.MainActivity$5;->onFailure(Lokhttp3/Call; Ljava/io/IOException;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.wyweb.zhengwu.app.Main2Activity;->onActivityResult(I I Landroid/content/Intent;)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.wyweb.zhengwu.app.Main2Activity$11;->onFailure(Lokhttp3/Call; Ljava/io/IOException;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.wyweb.zhengwu.app.fragment.FristFragment;->createImageFile()Ljava/io/File;==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.resource.bitmap.RecyclableBufferedInputStream;->fillbuf(Ljava/io/InputStream; [B)I==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
uk.co.senab.photoview.log.LoggerDefault;->e(Ljava/lang/String; Ljava/lang/String;)I==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.wyweb.zhengwu.app.LoginActivity;->showDialog(Ljava/lang/String; Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.data.HttpUrlFetcher;->getStreamForSuccessfulRequest(Ljava/net/HttpURLConnection;)Ljava/io/InputStream;==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.engine.Engine;->logWithTimeAndKey(Ljava/lang/String; J Lcom/bumptech/glide/load/Key;)V==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.lzy.okgo.utils.OkLogger;->v(Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.wyweb.zhengwu.app.LoginActivity;->JsBridge(Ljava/lang/String; Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.lzy.okgo.utils.OkLogger;->e(Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.resource.bitmap.BitmapEncoder;->encode(Lcom/bumptech/glide/load/engine/Resource; Ljava/io/OutputStream;)Z==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.wyweb.zhengwu.app.Main2Activity$11;->onResponse(Lokhttp3/Call; Lokhttp3/Response;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.wyweb.zhengwu.app.LineViewActivity;->onClick(Landroid/view/View;)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.engine.EngineRunnable;->decodeFromCache()Lcom/bumptech/glide/load/engine/Resource;==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.engine.bitmap_recycle.LruBitmapPool;->put(Landroid/graphics/Bitmap;)Z==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.request.GenericRequest;->logV(Ljava/lang/String;)V==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.wyweb.zhengwu.app.fragment.FristFragment;->onActivityResult(I I Landroid/content/Intent;)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.engine.bitmap_recycle.LruBitmapPool;->trimMemory(I)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
uk.co.senab.photoview.log.LoggerDefault;->i(Ljava/lang/String; Ljava/lang/String;)I==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.wyweb.zhengwu.app.ImageGalleryActivity;->onPageSelected(I)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.wyweb.zhengwu.app.MainActivity$3;->onSuccess(Ljava/lang/String; Lokhttp3/Call; Lokhttp3/Response;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.lzy.imagepicker.ui.ImageGridActivity;->onClick(Landroid/view/View;)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.Glide;->buildModelLoader(Ljava/lang/Class; Ljava/lang/Class; Landroid/content/Context;)Lcom/bumptech/glide/load/model/ModelLoader;==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.wyweb.zhengwu.app.Main2Activity;->JsBridge(Ljava/lang/String; Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.wyweb.zhengwu.app.Main2Activity$12;->onResponse(Lokhttp3/Call; Lokhttp3/Response;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.engine.bitmap_recycle.LruBitmapPool;->dumpUnchecked()V==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.engine.bitmap_recycle.LruBitmapPool;->getDirty(I I Landroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.wyweb.zhengwu.app.fragment.FristFragment$9;->run()V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.engine.bitmap_recycle.LruBitmapPool;->getDirty(I I Landroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
SweetAlert.SweetAlertDialog;->onClick(Landroid/view/View;)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.wyweb.zhengwu.app.Main2Activity;->onActivityResult(I I Landroid/content/Intent;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.engine.prefill.BitmapPreFillRunner;->allocate()Z==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.lzy.okgo.utils.OkLogger;->i(Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
uk.co.senab.photoview.log.LoggerDefault;->d(Ljava/lang/String; Ljava/lang/String;)I==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.wyweb.zhengwu.app.ImageGalleryActivity;->onCreate(Landroid/os/Bundle;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.engine.CacheLoader;->load(Lcom/bumptech/glide/load/Key; Lcom/bumptech/glide/load/ResourceDecoder; I I)Lcom/bumptech/glide/load/engine/Resource;==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
uk.co.senab.photoview.log.LoggerDefault;->v(Ljava/lang/String; Ljava/lang/String;)I==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.wyweb.zhengwu.app.Main2Activity$12;->onFailure(Lokhttp3/Call; Ljava/io/IOException;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.gifencoder.AnimatedGifEncoder;->getImagePixels()V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.wyweb.zhengwu.app.fragment.UserFragment;->JsBridge(Ljava/lang/String; Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
SweetAlert.SweetAlertDialog$3;->onClick(Landroid/view/View;)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.wyweb.zhengwu.app.ImageGalleryActivity$ViewPagerAdapter;->instantiateItem(Landroid/view/ViewGroup; I)Ljava/lang/Object;==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.wyweb.zhengwu.app.utils.PicutrueUtils;->compressImage(Ljava/lang/String; Ljava/lang/String; I)Ljava/lang/String;==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.wyweb.zhengwu.app.fragment.FristFragment;->JsBridge(Ljava/lang/String; Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.wyweb.zhengwu.app.LoginActivity$7;->onFailure(Lokhttp3/Call; Ljava/io/IOException;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.resource.bitmap.ImageHeaderParser;->getExifSegment()[B==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.wyweb.zhengwu.app.MainActivity$3;->onError(Lokhttp3/Call; Lokhttp3/Response; Ljava/lang/Exception;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.gifdecoder.GifDecoder;->getNextFrame()Landroid/graphics/Bitmap;==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.resource.gif.GifResourceEncoder;->encode(Lcom/bumptech/glide/load/engine/Resource; Ljava/io/OutputStream;)Z==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.lzy.okgo.utils.OkLogger;->d(Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.wyweb.zhengwu.app.LineViewActivity;->setfile(Ljava/io/File;)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.wyweb.zhengwu.app.MainActivity$5;->onResponse(Lokhttp3/Call; Lokhttp3/Response;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.engine.bitmap_recycle.LruBitmapPool;->trimToSize(I)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.util.ByteArrayPool;->getBytes()[B==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.wyweb.zhengwu.app.fragment.FristFragment$1;->onProgressChanged(Landroid/webkit/WebView; I)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.resource.bitmap.ImageHeaderParser;->parseExifSegment(Lcom/bumptech/glide/load/resource/bitmap/ImageHeaderParser$RandomAccessReader;)I==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.engine.bitmap_recycle.LruBitmapPool;->trimToSize(I)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I

中危

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

位置: classes.dex
com.wyweb.zhengwu.app.fragment.FristFragment;->initData()V
com.wyweb.zhengwu.app.fragment.UserFragment;->initData()V
com.wyweb.zhengwu.app.LoginActivity;->onCreate(Landroid.os.Bundle;)V
com.wyweb.zhengwu.app.Main2Activity;->onCreate(Landroid.os.Bundle;)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

中危

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

位置: classes.dex
'file:///android_asset/' used in: Lcom/bumptech/glide/load/model/AssetUriParser;->()V
'file:///android_asset/web/views/' used in: Lcom/wyweb/zhengwu/app/Main2Activity;->()V
'file:///android_asset/web/views/index.html' used in: Lcom/wyweb/zhengwu/app/fragment/FristFragment;->()V
'file:///android_asset/web/views/login.html' used in: Lcom/wyweb/zhengwu/app/LoginActivity;->()V
'file:///android_asset/web/views/login.html' used in: Lcom/wyweb/zhengwu/app/fragment/FristFragment;->()V
'file:///android_asset/web/views/user.html' used in: Lcom/wyweb/zhengwu/app/fragment/UserFragment;->()V
'http://schemas.android.com/apk/res/android' used in: Landroid/support/graphics/drawable/TypedArrayUtils;->hasAttribute(Lorg/xmlpull/v1/XmlPullParser; Ljava/lang/String;)Z
'http://vhunli.cn/shwuywServiceTest/uploadImge.php' used in: Lcom/wyweb/zhengwu/app/fragment/FristFragment;->()V
'http://www.962121.net/hmfmstest/service/api/v1/file/uploadfile' used in: Lcom/wyweb/zhengwu/app/Main2Activity;->Okgoshang(Ljava/io/File;)V
'http://www.962121.net/hmfmstest/service/api/v1/users/appversioninfo' used in: Lcom/wyweb/zhengwu/app/Main2Activity;->update()V
'http://www.962121.net/hmfmstest/service/api/v1/users/appversioninfo' used in: Lcom/wyweb/zhengwu/app/MainActivity;->update()V
'http://www.962121.net/hmfmstest/service/api/v1/users/appversioninfo' used in: Lcom/wyweb/zhengwu/app/LoginActivity;->update()V
'http://www.962121.net/wyweb/service/api/v1/community/list' used in: Lcom/wyweb/zhengwu/app/MainActivity;->checkTokenAvailable()V
'http://www.quanjing.com/image/2017index/lx1.png' used in: Lcom/wyweb/zhengwu/app/fragment/FristFragment;->()V
"javascript:dataFromBack('" used in: Lcom/wyweb/zhengwu/app/Main2Activity$9;->run()V
'javascript:getUserInfo()' used in: Lcom/wyweb/zhengwu/app/fragment/UserFragment$6;->run()V
'javascript:getUserInfo()' used in: Lcom/wyweb/zhengwu/app/fragment/UserFragment$5;->run()V
'javascript:getUserToken()' used in: Lcom/wyweb/zhengwu/app/fragment/FristFragment$9;->run()V

中危

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

位置: classes.dex
com.wyweb.zhengwu.app.fragment.UserFragment;
com.wyweb.zhengwu.app.LoginActivity;
com.wyweb.zhengwu.app.Main2Activity;
com.wyweb.zhengwu.app.fragment.FristFragment;

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/

低危

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

位置: classes.dex
com.wyweb.zhengwu.app.Main2Activity;->onCreate(Landroid.os.Bundle;)V
com.wyweb.zhengwu.app.fragment.UserFragment;->initData()V
com.wyweb.zhengwu.app.fragment.FristFragment;->initData()V
com.wyweb.zhengwu.app.LoginActivity;->onCreate(Landroid.os.Bundle;)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/

低危

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

位置: classes.dex
com.wyweb.zhengwu.app.utils.PicutrueUtils;
com.bumptech.glide.disklrucache.DiskLruCache;
com.lzy.imagepicker.ImageDataSource;
com.wyweb.zhengwu.app.fragment.FristFragment$7;
com.wyweb.zhengwu.app.MainActivity;
com.wyweb.zhengwu.app.utils.FileUtils;
com.wyweb.zhengwu.app.utils.APPConfig;

低危

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

位置: classes.dex
com.lzy.okgo.https.HttpsUtils$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

警告

检测到4潜在的XSS漏洞。

位置: classes.dex
com.wyweb.zhengwu.app.fragment.FristFragment;->initData()V
com.wyweb.zhengwu.app.fragment.UserFragment;->initData()V
com.wyweb.zhengwu.app.LoginActivity;->onCreate(Landroid.os.Bundle;)V
com.wyweb.zhengwu.app.Main2Activity;->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处provider的grantUriPermissions设置为true。
android.support.v4.content.FileProvider


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

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


动态扫描发现风险点

风险等级 风险名称

服务端分析

风险等级 风险名称

警告

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

警告

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

应用证书