漏洞分析

0

高危漏洞

5

中危漏洞

3

低危漏洞

6

警告

文件名 中途上车.apk
上传者 305528669
文件大小 6.3543491363525MB
MD5 e88708ba4baf23d0166aeafebedc4647
包名 car.breaks.unreal.org.breakscartrain
Main Activity car.breaks.unreal.org.breakscartrain.mvp.ui.SplashAcitivity
Min SDK 19
Target SDK 28

权限列表

# 名称 说明 提示
0 android.permission.ACCESS_COARSE_LOCATION 访问大概的位置源(例如蜂窝网络数据库)以确定手机的大概位置(如果可以)。恶意应用程序可借此确定您所处的大概位置。 注意
1 android.permission.ACCESS_FINE_LOCATION 访问精准的位置源,例如手机上的全球定位系统(如果有)。恶意应用程序可能会借此确定您所处的位置,并可能消耗额外的电池电量。 注意
2 android.permission.ACCESS_NETWORK_STATE 允许应用程序查看所有网络的状态。 提示
3 android.permission.ACCESS_WIFI_STATE 允许应用程序查看有关WLAN状态的信息。 提示
4 android.permission.CAMERA 允许应用程序使用相机拍照,这样应用程序可随时收集进入相机镜头的图像。 提示
5 android.permission.CHANGE_WIFI_STATE 允许应用程序连接到WLAN接入点以及与WLAN接入点断开连接,并对配置的WLAN网络进行更改。 提示
6 android.permission.INTERNET 允许程序访问网络. 提示
7 android.permission.WRITE_EXTERNAL_STORAGE 允许应用程序写入SD卡。 提示

四大组件

组件名称

car.breaks.unreal.org.breakscartrain.mvp.ui.SplashAcitivity
car.breaks.unreal.org.breakscartrain.mvp.ui.LoginActivity
car.breaks.unreal.org.breakscartrain.mvp.ui.WelComeActivity
car.breaks.unreal.org.breakscartrain.mvp.ui.MainActivity
car.breaks.unreal.org.breakscartrain.mvp.ui.ForgetActivity
car.breaks.unreal.org.breakscartrain.mvp.ui.StartJobActivity
car.breaks.unreal.org.breakscartrain.mvp.ui.RealnameActivity
car.breaks.unreal.org.breakscartrain.mvp.ui.AboutWeActivity
car.breaks.unreal.org.breakscartrain.mvp.ui.ChangePassActivity
car.breaks.unreal.org.breakscartrain.mvp.ui.InforSaveActivity
car.breaks.unreal.org.breakscartrain.mvp.ui.UpdateVersionActivity
car.breaks.unreal.org.breakscartrain.mvp.ui.UserInforActivity
car.breaks.unreal.org.breakscartrain.bese.apputils.imageselector.ClipImageActivity
car.breaks.unreal.org.breakscartrain.bese.apputils.imageselector.ImageSelectorActivity
car.breaks.unreal.org.breakscartrain.bese.apputils.imageselector.PreviewActivity
com.blankj.utilcode.util.PermissionUtils$PermissionActivity

android.support.v4.content.FileProvider
android.support.v4.content.FileProvider4Util

第三方库

# 库名 介绍
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.bumptech.glide An image loading and caching library for Android focused on smooth scrolling
3 com.loopj.android.http An Asynchronous HTTP Library for Android http://loopj.com/android-async-http/
4 com.google.gson A Java serialization library that can convert Java Objects into JSON and back.

静态扫描发现风险点

风险等级 风险名称

中危

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

中危

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

位置: classes.dex
com.loopj.android.http.MySSLSocketFactory$1;
com.zxy.tiny.core.HttpUrlConnectionFetcher$TinyTrustManager;

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

位置: classes.dex
car.breaks.unreal.org.breakscartrain.bese.apputils.viewutils.date.view.WheelView;->onDraw(Landroid/graphics/Canvas;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
car.breaks.unreal.org.breakscartrain.bese.apputils.imageselector.utils.ImageUtil;->decodeSampledBitmapFromFile(Ljava/lang/String; I I)Landroid/graphics/Bitmap;==>android.util.Log;->e(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.blankj.utilcode.util.CrashUtils$1;->uncaughtException(Ljava/lang/Thread; Ljava/lang/Throwable;)V==>android.util.Log;->e(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
car.breaks.unreal.org.breakscartrain.mvp.db.PassengersDaoManager;->insertPassengers(Lcar/breaks/unreal/org/breakscartrain/mvp/db/PassengersBean;)Z==>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.blankj.utilcode.util.ThreadUtils$SimpleTask;->onCancel()V==>android.util.Log;->e(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
cz.msebera.android.httpclient.extras.PRNGFixes$LinuxPRNGSecureRandom;->engineSetSeed([B)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.blankj.utilcode.util.ProcessUtils;->getForegroundProcessName()Ljava/lang/String;==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.blankj.utilcode.util.NetworkUtils;->isAvailableByPing(Ljava/lang/String;)Z==>android.util.Log;->d(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.blankj.utilcode.util.ToastUtils$ApplicationContextWrapperForApi25$WindowManagerWrapper;->addView(Landroid/view/View; Landroid/view/ViewGroup$LayoutParams;)V==>android.util.Log;->e(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
android.arch.lifecycle.LifecycleRegistry;->sync()V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
org.greenrobot.greendao.DaoLog;->v(Ljava/lang/String;)I==>android.util.Log;->v(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
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
org.greenrobot.greendao.DaoLog;->d(Ljava/lang/String;)I==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.blankj.utilcode.util.LogUtils;->print2File(I 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
car.breaks.unreal.org.breakscartrain.mvp.imple.InforSaveModelImple$1;->onSuccess(I [Lcz/msebera/android/httpclient/Header; [B)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
car.breaks.unreal.org.breakscartrain.mvp.db.DaoMaster$DevOpenHelper;->onUpgrade(Lorg/greenrobot/greendao/database/Database; I I)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.blankj.utilcode.util.CrashUtils;->input2File(Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.blankj.utilcode.util.SpanUtils$CustomImageSpan;->getDrawable()Landroid/graphics/drawable/Drawable;==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
car.breaks.unreal.org.breakscartrain.mvp.base.BaseActivity;->onNetChange(I)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.blankj.utilcode.util.ZipUtils;->unzipFileByKeyword(Ljava/io/File; Ljava/io/File; Ljava/lang/String;)Ljava/util/List;==>android.util.Log;->e(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
cz.msebera.android.httpclient.extras.HttpClientAndroidLog;->error(Ljava/lang/Object;)V==>android.util.Log;->e(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
com.blankj.utilcode.util.AppUtils;->installAppSilent(Ljava/io/File; Ljava/lang/String; Z)Z==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.blankj.utilcode.util.FragmentUtils;->operate(I Landroid/support/v4/app/FragmentManager; Landroid/support/v4/app/FragmentTransaction; Landroid/support/v4/app/Fragment; [Landroid/support/v4/app/Fragment;)V==>android.util.Log;->e(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
org.greenrobot.greendao.DaoLog;->e(Ljava/lang/String;)I==>android.util.Log;->w(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.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
org.greenrobot.greendao.DaoLog;->w(Ljava/lang/String;)I==>android.util.Log;->w(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.zxy.tiny.common.Logger;->e(Ljava/lang/String;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
cz.msebera.android.httpclient.extras.HttpClientAndroidLog;->warn(Ljava/lang/Object;)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
org.greenrobot.greendao.DaoLog;->i(Ljava/lang/String;)I==>android.util.Log;->i(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
com.blankj.utilcode.util.AppUtils;->uninstallAppSilent(Ljava/lang/String; Z Z)Z==>android.util.Log;->e(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
car.breaks.unreal.org.breakscartrain.mvp.db.DaoMaster$OpenHelper;->onCreate(Lorg/greenrobot/greendao/database/Database;)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
cz.msebera.android.httpclient.extras.HttpClientAndroidLog;->debug(Ljava/lang/Object;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
cz.msebera.android.httpclient.extras.HttpClientAndroidLog;->trace(Ljava/lang/Object;)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
cz.msebera.android.httpclient.extras.HttpClientAndroidLog;->info(Ljava/lang/Object;)V==>android.util.Log;->i(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.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.blankj.utilcode.util.LogUtils;->input2File(Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->e(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.blankj.utilcode.util.AppUtils;->isAppRoot()Z==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.blankj.utilcode.util.KeyboardUtils;->clickBlankArea2HideSoftInput()V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.blankj.utilcode.util.PermissionUtils$PermissionActivity;->onCreate(Landroid/os/Bundle;)V==>android.util.Log;->e(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

中危

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

位置: classes.dex
'file:///android_asset/' used in: Lcom/bumptech/glide/load/model/AssetUriParser;->()V
'http://61.243.112.158:9012/apk' used in: Lcar/breaks/unreal/org/breakscartrain/mvp/imple/MainModelImple;->loaderAppVersion(Landroid/content/Context; Lcar/breaks/unreal/org/breakscartrain/mvp/listener/OnUpdateLister;)V
'http://61.243.112.158:9012/apk' used in: Lcar/breaks/unreal/org/breakscartrain/mvp/presenter/UpdateVersionPresenter;->loaderAppVersion(Landroid/content/Context; Lcar/breaks/unreal/org/breakscartrain/mvp/listener/OnUpdateLister;)V
'http://61.243.112.158:9012/message/finish?userId=' used in: Lcar/breaks/unreal/org/breakscartrain/mvp/presenter/HomePresenter;->cacelSartJob(Lcar/breaks/unreal/org/breakscartrain/mvp/listener/OnLoginListener;)V
'http://61.243.112.158:9012/message/start?userId=' used in: Lcar/breaks/unreal/org/breakscartrain/mvp/imple/HomeModelImple;->loaderStartTrain(Landroid/content/Context; Lcar/breaks/unreal/org/breakscartrain/mvp/listener/OnStartJobListener;)V
'http://61.243.112.158:9012/news?id=1' used in: Lcar/breaks/unreal/org/breakscartrain/mvp/presenter/AboutPresenter;->loaderAboutUrl(Landroid/content/Context; Lcar/breaks/unreal/org/breakscartrain/mvp/listener/OnForgetPassListener;)V
'http://61.243.112.158:9012/passer' used in: Lcar/breaks/unreal/org/breakscartrain/mvp/base/BaseActivity;->CarUpload(Ljava/util/List;)V
'http://61.243.112.158:9012/passer' used in: Lcar/breaks/unreal/org/breakscartrain/mvp/imple/InforSaveModelImple;->saveCarUserInfor(Landroid/content/Context; Lcar/breaks/unreal/org/breakscartrain/mvp/listener/OnLoginListener;)V
'http://61.243.112.158:9012/station/findAllStation' used in: Lcar/breaks/unreal/org/breakscartrain/mvp/imple/StartJobModelImple;->loaderStation(Landroid/content/Context; Lcar/breaks/unreal/org/breakscartrain/mvp/listener/OnStationListener;)V
'http://61.243.112.158:9012/train' used in: Lcar/breaks/unreal/org/breakscartrain/mvp/imple/StartJobModelImple;->startJob(Landroid/content/Context; Landroid/widget/EditText; Landroid/widget/EditText; Landroid/widget/TextView; Landroid/widget/TextView; Lcar/breaks/unreal/org/breakscartrain/mvp/listener/OnLoginListener;)V
'http://61.243.112.158:9012/worker/login?phone=' used in: Lcar/breaks/unreal/org/breakscartrain/mvp/imple/LoginModelImple;->userlogin(Landroid/app/Activity; Landroid/widget/EditText; Landroid/widget/EditText; Landroid/widget/CheckBox; Lcar/breaks/unreal/org/breakscartrain/mvp/listener/OnLoginListener;)V
'http://61.243.112.158:9012/worker/modifyWorkerPwd' used in: Lcar/breaks/unreal/org/breakscartrain/mvp/imple/ChangePassModelImple;->savePass(Landroid/content/Context; Landroid/widget/EditText; Landroid/widget/EditText; Landroid/widget/EditText; Lcar/breaks/unreal/org/breakscartrain/mvp/listener/OnLoginListener;)V
'http://61.243.112.158:9012/worker/resetWorkerPwd' used in: Lcar/breaks/unreal/org/breakscartrain/mvp/presenter/ForgetPassPresenter;->loaderPassInfor(Landroid/content/Context; Ljava/lang/String; Lcar/breaks/unreal/org/breakscartrain/mvp/listener/OnForgetPassListener;)V
'http://example.com/' used in: Lcz/msebera/android/httpclient/impl/client/cache/CacheKeyGenerator;->()V
'http://freemarker.org/' used in: Lfreemarker/core/CommandLine;->main([Ljava/lang/String;)V
'http://java.sun.com/dtd/web-app_2_3.dtd' used in: Lfreemarker/ext/jsp/TaglibFactory$LocalDtdEntityResolver;->()V
'http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd' used in: Lfreemarker/ext/jsp/TaglibFactory$LocalDtdEntityResolver;->()V
'http://java.sun.com/j2ee/dtds/web-app_2_2.dtd' used in: Lfreemarker/ext/jsp/TaglibFactory$LocalDtdEntityResolver;->()V
'http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd' used in: Lfreemarker/ext/jsp/TaglibFactory$LocalDtdEntityResolver;->()V
'http://schemas.android.com/apk/res/android' used in: Landroid/support/design/chip/Chip;->validateAttributes(Landroid/util/AttributeSet;)V
'http://schemas.android.com/apk/res/android' used in: Landroid/support/v4/content/res/TypedArrayUtils;->hasAttribute(Lorg/xmlpull/v1/XmlPullParser; Ljava/lang/String;)Z
'http://www.w3.org/XML/1998/namespace' used in: Lfreemarker/ext/xml/Namespaces;->()V
'www.abcdefgzxy.com' used in: Lcom/zxy/tiny/core/HttpUrlConnectionFetcher$1;->verify(Ljava/lang/String; Ljavax/net/ssl/SSLSession;)Z

中危

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

位置: classes.dex
car.breaks.unreal.org.breakscartrain.mvp.ui.AboutWeActivity;

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/

低危

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

位置: classes.dex
'DES/ECB/NoPadding' used in: Lcz/msebera/android/httpclient/impl/auth/NTLMEngineImpl;->lmResponse([B [B)[B
'DES/ECB/NoPadding' used in: Lcz/msebera/android/httpclient/impl/auth/NTLMEngineImpl;->lmHash(Ljava/lang/String;)[B
'DES/ECB/NoPadding' used in: Lcz/msebera/android/httpclient/impl/auth/NTLMEngineImpl$CipherGen;->getLanManagerSessionKey()[B

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

低危

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

位置: classes.dex
Lcz/msebera/android/httpclient/impl/auth/NTLMEngineImpl;->lmResponse([B [B)[B
Lcz/msebera/android/httpclient/impl/auth/NTLMEngineImpl;->lmHash(Ljava/lang/String;)[B
Lcz/msebera/android/httpclient/impl/auth/NTLMEngineImpl$CipherGen;->getLanManagerSessionKey()[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脚本,移除大部分系统输出代码。
经扫描该包仍存在大量系统输出代码,共发现12处系统输出代码.(此处扫描的系统输出代码,是指调用System.out.print*输出的,本应在打包平台移除的系统输出代码.)
各个bundle系统输出代码详情如下:

位置: classes.dex
org.greenrobot.greendao.generator.ToOne;
freemarker.template.utility.ToCanonical;
com.blankj.utilcode.util.ThreadUtils;
com.bumptech.glide.disklrucache.DiskLruCache;
freemarker.template.TemplateException$PrintStreamStackTraceWriter;
freemarker.core.CommandLine;
freemarker.ext.dom.Transform;
freemarker.log.Logger;
freemarker.template.Template;
freemarker.core.StopException;
org.greenrobot.greendao.generator.DaoGenerator;
org.greenrobot.greendao.generator.ToMany;

警告

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

位置: classes.dex
car.breaks.unreal.org.breakscartrain.bese.apputils.ApkUtils;->installApk
com.blankj.utilcode.util.IntentUtils;->getIntent
com.blankj.utilcode.util.PermissionUtils$PermissionActivity;->start
com.blankj.utilcode.util.ActivityUtils;->startActivities
com.blankj.utilcode.util.ProcessUtils;->getForegroundProcessName
com.blankj.utilcode.util.ActivityUtils;->startActivity
com.blankj.utilcode.util.ActivityUtils;->getLauncherActivity
com.blankj.utilcode.util.DeviceUtils;->shutdown
car.breaks.unreal.org.breakscartrain.mvp.ui.MainActivity$3;->OnItemClikToNama
com.blankj.utilcode.util.PermissionUtils;->launchAppDetailsSettings

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

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

警告

检测到1潜在的XSS漏洞。

位置: classes.dex
car.breaks.unreal.org.breakscartrain.mvp.ui.AboutWeActivity;->initView()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.blankj.utilcode.util.EncryptUtils;->symmetricTemplate([B [B Ljava.lang.String; Ljava.lang.String; [B Z)[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

警告

检测到2处provider的grantUriPermissions设置为true。
android.support.v4.content.FileProvider
android.support.v4.content.FileProvider4Util


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

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

警告

检测到1处socket通信。

位置: classes.dex
Lfreemarker.debug.impl.DebuggerServer;->startInternal

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

警告

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

位置: classes.dex
com.blankj.utilcode.util.EncryptUtils;->symmetricTemplate([B [B Ljava.lang.String; Ljava.lang.String; [B Z)[B
cz.msebera.android.httpclient.impl.auth.NTLMEngineImpl;->createDESKey([B I)Ljava.security.Key;
com.blankj.utilcode.util.EncryptUtils;->hmacTemplate([B [B Ljava.lang.String;)[B
cz.msebera.android.httpclient.impl.auth.NTLMEngineImpl;->RC4([B [B)[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跨站漏洞。
开发中...

应用证书