0

高危漏洞

7

中危漏洞

3

低危漏洞

7

警告

文件名 KONet.apk
上传者 xie
文件大小 31.701962471008MB
MD5 76c596dc78e7a63f29b2ab75874f3697
包名 com.clobotics.retail.konet
Main Activity com.clobotics.retail.zhiwei.ui.LoginActivity
Min SDK 19
Target SDK 28

权限列表

# 名称 说明 提示
0 android.permission.ACCESS_COARSE_LOCATION 访问大概的位置源(例如蜂窝网络数据库)以确定手机的大概位置(如果可以)。恶意应用程序可借此确定您所处的大概位置。 注意
1 android.permission.ACCESS_FINE_LOCATION 访问精准的位置源,例如手机上的全球定位系统(如果有)。恶意应用程序可能会借此确定您所处的位置,并可能消耗额外的电池电量。 注意
2 android.permission.BLUETOOTH 允许应用程序查看本地蓝牙手机的配置,以及建立或接受与配对设备的连接。 注意
3 android.permission.READ_PHONE_STATE 允许应用程序访问设备的手机功能。有此权限的应用程序可确定此手机的号码和序列号,是否正在通话,以及对方的号码等。 注意
4 android.permission.ACCESS_NETWORK_STATE 允许应用程序查看所有网络的状态。 提示
5 android.permission.ACCESS_WIFI_STATE 允许应用程序查看有关WLAN状态的信息。 提示
6 android.permission.CAMERA 允许应用程序使用相机拍照,这样应用程序可随时收集进入相机镜头的图像。 提示
7 android.permission.INTERNET 允许程序访问网络. 提示
8 android.permission.VIBRATE 允许应用程序控制振动器。 提示
9 android.permission.WRITE_EXTERNAL_STORAGE 允许应用程序写入SD卡。 提示

四大组件

组件名称

com.clobotics.retail.zhiwei.ui.dialog.UpgradeDialogActivity
com.clobotics.retail.zhiwei.ui.LoginActivity
com.clobotics.retail.zhiwei.ui.MainStoreActivity
com.clobotics.retail.zhiwei.ui.MainTaskActivity
com.clobotics.retail.zhiwei.ui.TaskPreviewActivity
com.clobotics.retail.zhiwei.ui.WebReportActivity
com.clobotics.retail.zhiwei.ui.PlanSummaryActivity
com.clobotics.retail.zhiwei.ui.PlanCancelActivity
com.clobotics.retail.zhiwei.ui.v2.PlanReplaceActivity
com.clobotics.retail.zhiwei.ui.v2.StoreAddActivity
com.clobotics.retail.zhiwei.ui.AboutActivity
com.clobotics.retail.zhiwei.ui.FeedBackActivity
com.clobotics.retail.zhiwei.ui.ChangePassActivity
com.clobotics.retail.zhiwei.ui.v2.PlanReplaceAddActivity
com.clobotics.retail.zhiwei.ui.NavigationActivity
com.clobotics.retail.zhiwei.ui.WebTaskResultActivity
com.clobotics.retail.zhiwei.ui.SurveyActivity
com.clobotics.retail.zhiwei.ui.PlanDoorActivity
com.clobotics.retail.zhiwei.ui.PhotoCameraActivity
com.clobotics.retail.zhiwei.ui.v2.MainTabActivity
com.clobotics.retail.zhiwei.ui.v2.UserCenterActivity
com.clobotics.retail.zhiwei.ui.v2.StoreEditActivity
com.clobotics.retail.zhiwei.ui.v2.PhotoListActivity
com.clobotics.retail.zhiwei.ui.v2.PlanAddActivity
com.clobotics.retail.stitch.MainCameraActivity
com.clobotics.retail.stitch.MainCameraActivity2

com.clobotics.retail.zhiwei.ui.service.LocationService
com.baidu.location.f
com.clobotics.retail.zhiwei.ui.service.AutoUploadService
com.clobotics.retail.request.TakePictureService

com.clobotics.retail.zhiwei.ui.broadcast.LanguageReceiver

android.support.v4.content.FileProvider

第三方库

# 库名 介绍
0 com.daimajia.swipe The Most Powerful Swipe Layout!
1 android.support.transition A backport of the new Transitions API for Android.
2 retrofit2 Type-safe REST client for Android and Java by Square, Inc.
3 okhttp3 An HTTP+SPDY client for Android and Java applications.
4 com.bumptech.glide An image loading and caching library for Android focused on smooth scrolling
5 io.realm Realm is a mobile database=> a replacement for SQLite & ORMs.
6 com.baidu.lbsapi 百度Android全景SDK是为Android移动平台提供的一套全景图服务接口,面向广大开发者提供全景图的检索、显示和交互功能,从而更加清晰方便地展示目标位置的周边环境。
7 com.google.gson A Java serialization library that can convert Java Objects into JSON and back.
8 com.baidu.mobstat 百度移动统计SDK
9 android.support.multidex DEPRECATED

静态扫描发现风险点

风险等级 风险名称

中危

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

中危

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

位置: classes.dex
com.zxy.tiny.core.HttpUrlConnectionFetcher$TinyTrustManager;
com.zhy.http.okhttp.https.HttpsUtils$UnSafeTrustManager;

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

位置: classes.dex
com.bumptech.glide.load.engine.bitmap_recycle.LruBitmapPool;->trimMemory(I)V==>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; F F I F F)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.engine.bitmap_recycle.LruBitmapPool;->getDirtyOrNull(I I Landroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;==>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.baidu.location.b;->onServiceConnected(Landroid/content/ComponentName; Landroid/os/IBinder;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.baidu.location.d.h;->run()V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.zhy.http.okhttp.log.LoggerInterceptor;->logForResponse(Lokhttp3/Response;)Lokhttp3/Response;==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.zhy.http.okhttp.log.LoggerInterceptor;->logForRequest(Lokhttp3/Request;)V==>android.util.Log;->e(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.bumptech.glide.load.engine.bitmap_recycle.LruBitmapPool;->getDirtyOrNull(I I Landroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;==>android.util.Log;->v(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.resource.bitmap.TransformationUtils;->centerInside(Lcom/bumptech/glide/load/engine/bitmap_recycle/BitmapPool; Landroid/graphics/Bitmap; I I)Landroid/graphics/Bitmap;==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.resource.bitmap.DefaultImageHeaderParser;->parseExifSegment(Lcom/bumptech/glide/load/resource/bitmap/DefaultImageHeaderParser$RandomAccessReader;)I==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.request.SingleRequest;->logV(Ljava/lang/String;)V==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.resource.bitmap.DefaultImageHeaderParser;->getOrientation(Lcom/bumptech/glide/load/resource/bitmap/DefaultImageHeaderParser$Reader; Lcom/bumptech/glide/load/engine/bitmap_recycle/ArrayPool;)I==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.resource.bitmap.Downsampler;->decodeFromWrappedStreams(Ljava/io/InputStream; Landroid/graphics/BitmapFactory$Options; Lcom/bumptech/glide/load/resource/bitmap/DownsampleStrategy; Lcom/bumptech/glide/load/DecodeFormat; I I Z Lcom/bumptech/glide/load/resource/bitmap/Downsampler$DecodeCallbacks;)Landroid/graphics/Bitmap;==>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.bumptech.glide.load.resource.bitmap.Downsampler;->logDecode(I I Ljava/lang/String; Landroid/graphics/BitmapFactory$Options; Landroid/graphics/Bitmap; I I)V==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.baidu.lbsapi.auth.a;->b(Ljava/lang/String;)V==>android.util.Log;->i(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.resource.gif.ByteBufferGifDecoder;->decode(Ljava/nio/ByteBuffer; I I Lcom/bumptech/glide/gifdecoder/GifHeaderParser;)Lcom/bumptech/glide/load/resource/gif/GifDrawableResource;==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.gifdecoder.StandardGifDecoder;->getNextFrame()Landroid/graphics/Bitmap;==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.baidu.android.bbalbs.common.util.b;->b()Lcom/baidu/android/bbalbs/common/util/b$b;==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.request.SingleRequest;->onResourceReady(Lcom/bumptech/glide/load/engine/Resource; Ljava/lang/Object; Lcom/bumptech/glide/load/DataSource;)V==>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
org.greenrobot.eventbus.EventBus;->postSingleEvent(Ljava/lang/Object; Lorg/greenrobot/eventbus/EventBus$PostingThreadState;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.resource.bitmap.DefaultImageHeaderParser;->moveToExifSegmentAndGetLength(Lcom/bumptech/glide/load/resource/bitmap/DefaultImageHeaderParser$Reader;)I==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.zhy.http.okhttp.utils.L;->e(Ljava/lang/String;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.baidu.location.a.j;->onAuthResult(I Ljava/lang/String;)V==>android.util.Log;->i(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.bumptech.glide.Glide;->initializeGlide(Landroid/content/Context;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.resource.gif.ByteBufferGifDecoder;->getSampleSize(Lcom/bumptech/glide/gifdecoder/GifHeader; I I)I==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.baidu.location.c.a;->b()V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.util.pool.FactoryPools$FactoryPool;->acquire()Ljava/lang/Object;==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.baidu.android.common.util.DeviceId;->getCUIDInfo()Lcom/baidu/android/common/util/DeviceId$CUIDInfo;==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
org.greenrobot.eventbus.EventBus;->unregister(Ljava/lang/Object;)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.baidu.location.d.h;->run()V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.jcodecraeer.xrecyclerview.JellyView;->onMove(F)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.clobotics.retail.dbcache.f;->b()Ljava/lang/String;==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.baidu.location.c.a;->onDestroy()V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.engine.bitmap_recycle.LruArrayPool;->get(I Ljava/lang/Class;)Ljava/lang/Object;==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.engine.bitmap_recycle.LruBitmapPool;->put(Landroid/graphics/Bitmap;)V==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.baidu.android.common.util.DeviceId;->getCUIDInfo()Lcom/baidu/android/common/util/DeviceId$CUIDInfo;==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.baidu.location.c.a;->onTaskRemoved(Landroid/content/Intent;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.clobotics.retail.dbcache.f;->a(Z)V==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.data.HttpUrlFetcher;->loadData(Lcom/bumptech/glide/Priority; Lcom/bumptech/glide/load/data/DataFetcher$DataCallback;)V==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.baidu.lbsapi.auth.a;->a(Ljava/lang/String;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.baidu.lbsapi.auth.a;->c(Ljava/lang/String;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.module.ManifestParser;->parse()Ljava/util/List;==>android.util.Log;->v(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.baidu.location.c.a;->a(Landroid/os/Message;)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.load.engine.DecodeJob;->logWithTimeAndKey(Ljava/lang/String; J Ljava/lang/String;)V==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.clobotics.retail.zhiwei.utils.CameraUtil;->convertByteToColor([B)[I==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.clobotics.retail.dbcache.f;->a(Ljava/lang/String;)V==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.resource.bitmap.BitmapEncoder;->encode(Lcom/bumptech/glide/load/engine/Resource; Ljava/io/File; Lcom/bumptech/glide/load/Options;)Z==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.baidu.location.d.g;->run()V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.engine.GlideException;->logRootCauses(Ljava/lang/String;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.clobotics.retail.utils.CameraUtil;->convertByteToColor([B)[I==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.module.ManifestParser;->parse()Ljava/util/List;==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.baidu.android.bbalbs.common.util.b;->b()Lcom/baidu/android/bbalbs/common/util/b$b;==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.baidu.location.b.e;->c()V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.resource.bitmap.DefaultImageHeaderParser;->parseExifSegment(Lcom/bumptech/glide/load/resource/bitmap/DefaultImageHeaderParser$Reader; [B I)I==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.tbruyelle.rxpermissions2.RxPermissionsFragment;->onRequestPermissionsResult([Ljava/lang/String; [I [Z)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.baidu.location.c.a;->onCreate(Landroid/content/Context;)V==>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.baidu.location.LocationClient;->enableLocInForeground(I Landroid/app/Notification;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.resource.bitmap.Downsampler;->calculateScaling(Lcom/bumptech/glide/load/resource/bitmap/DownsampleStrategy; I I I I I Landroid/graphics/BitmapFactory$Options;)V==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.engine.SourceGenerator;->cacheData(Ljava/lang/Object;)V==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.meishubao.common.net.interceptor.LogInterceptor;->intercept(Lokhttp3/Interceptor$Chain;)Lokhttp3/Response;==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.engine.cache.DiskLruCacheWrapper;->put(Lcom/bumptech/glide/load/Key; Lcom/bumptech/glide/load/engine/cache/DiskCache$Writer;)V==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.resource.bitmap.TransformationUtils;->fitCenter(Lcom/bumptech/glide/load/engine/bitmap_recycle/BitmapPool; Landroid/graphics/Bitmap; I I)Landroid/graphics/Bitmap;==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.clobotics.retail.dbcache.f;->c()Z==>android.util.Log;->v(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
com.bumptech.glide.Glide;->getAnnotationGeneratedGlideModules()Lcom/bumptech/glide/GeneratedAppGlideModule;==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.engine.bitmap_recycle.LruArrayPool;->evictToSize(I)V==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.bumptech.glide.load.engine.cache.DiskLruCacheWrapper;->get(Lcom/bumptech/glide/load/Key;)Ljava/io/File;==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.tbruyelle.rxpermissions2.RxPermissionsFragment;->log(Ljava/lang/String;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.baidu.location.d.f;->run()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

中危

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

位置: classes.dex
com.clobotics.retail.zhiwei.ui.PlanSummaryActivity;->loadWebData(Ljava.lang.String;)V
com.clobotics.retail.zhiwei.ui.WebTaskResultActivity;->loadWebData(Ljava.lang.String;)V
com.baidu.location.a.k;->a(Landroid.webkit.WebView;)V
com.baidu.mobstat.StatService;->a(Landroid.content.Context; Landroid.webkit.WebView; Landroid.webkit.WebViewClient; Landroid.webkit.WebChromeClient; Z)V
com.baidu.mobstat.af$b;->onPageFinished(Landroid.webkit.WebView; Ljava.lang.String; Lcom.baidu.mobstat.bl;)V
com.baidu.mobstat.af$b;->onPageStarted(Landroid.webkit.WebView; Ljava.lang.String; Lcom.baidu.mobstat.bl;)V
com.baidu.mobstat.av$b;->onPageFinished(Landroid.webkit.WebView; Ljava.lang.String; Lcom.baidu.mobstat.bl;)V
com.baidu.mobstat.av$b;->onPageStarted(Landroid.webkit.WebView; Ljava.lang.String; Lcom.baidu.mobstat.bl;)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

中危

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

位置: classes.dex
'10.0.0.172' used in: Lcom/baidu/location/d/e;->a(Landroid/content/Context; Landroid/net/NetworkInfo;)I
'10.0.0.172' used in: Lcom/baidu/mobstat/bo;->()V
'10.0.0.172' used in: Lcom/baidu/lbsapi/auth/g;->b()Ljavax/net/ssl/HttpsURLConnection;
'10.0.0.200' used in: Lcom/baidu/location/d/e;->a(Landroid/content/Context; Landroid/net/NetworkInfo;)I
'10.0.0.200' used in: Lcom/baidu/mobstat/bo;->()V
'10.0.0.200' used in: Lcom/baidu/lbsapi/auth/g;->b()Ljavax/net/ssl/HttpsURLConnection;
'data:image' used in: Lcom/bumptech/glide/load/model/DataUrlLoader$StreamFactory$1;->decode(Ljava/lang/String;)Ljava/io/InputStream;
'data:image' used in: Lcom/bumptech/glide/load/model/DataUrlLoader;->handles(Ljava/lang/String;)Z
'data:text/html;charset=utf-8;base64' used in: Lcom/clobotics/retail/zhiwei/ui/NavigationActivity;->webViewGoBack()V
'data:text/html;charset=utf-8;base64' used in: Lcom/clobotics/retail/zhiwei/ui/WebTaskResultActivity;->webViewGoBack()V
'data:text/html;charset=utf-8;base64' used in: Lcom/clobotics/retail/zhiwei/ui/PlanSummaryActivity;->webViewGoBack()V
'data:text/html;charset=utf-8;base64' used in: Lcom/clobotics/retail/zhiwei/ui/WebReportActivity;->webViewGoBack()V
'file:///android_asset/' used in: Lcom/bumptech/glide/load/model/AssetUriLoader;->()V
'http://datax.baidu.com/xs.gif' used in: Lcom/baidu/mobstat/aa;->()V
'http://dxp.baidu.com/upgrade' used in: Lcom/baidu/mobstat/aa;->()V
'http://hmma.baidu.com/app.gif' used in: Lcom/baidu/mobstat/Config;->()V
'http://itsdata.map.baidu.com/long-conn-gps/sdk.php' used in: Lcom/baidu/location/a/f;->run()V
'http://loc.map.baidu.com/cc.php' used in: Lcom/baidu/location/a/d$a;->a()V
'http://localhost/' used in: Lretrofit2/Response;->success(Ljava/lang/Object; Lokhttp3/Headers;)Lretrofit2/Response;
'http://localhost/' used in: Lretrofit2/Response;->error(I Lokhttp3/ResponseBody;)Lretrofit2/Response;
'http://localhost/' used in: Lretrofit2/Response;->success(Ljava/lang/Object;)Lretrofit2/Response;
'http://m.amap.com/navigation/buslist/saddr=121.419901%2C31.018197%2C\xe4\xb8\x9c\xe5\xb7\x9d\xe8\xb7\xaf(\xe5\x9c\xb0\xe9\x93\x81\xe7\xab\x99)&daddr=121.455739%2C31.249563%2C\xe4\xb8\x8a\xe6\xb5\xb7\xe7\xab\x99&saddr_lonlat=121.419901%2C31.018197%2C\xe4\xb8\x9c\xe5\xb7\x9d\xe8\xb7\xaf(\xe5\x9c\xb0\xe9\x93\x81\xe7\xab\x99)&daddr_lonlat=&saddr_typecode=150500&daddr_typecode=&saddr_poiid=BV10028337&daddr_poiid=&maddr=&sort=&addPassing=remove' used in: Lcom/clobotics/retail/zhiwei/ui/NavigationActivity;->initParam()V
'http://maps.google.cn/maps/geo?output=csv&key=abcdef&q=%s,%s' used in: Lcom/clobotics/retail/zhiwei/utils/LocationUtils;->GetAddr(Ljava/lang/String; Ljava/lang/String;)Ljava/lang/String;
'http://openrcv.baidu.com/1010/bplus.gif' used in: Lcom/baidu/mobstat/s;->()V
'http://reaapi-test.clobotics.cn' used in: Lcom/clobotics/retail/request/b;->a()Ljava/lang/String;
'http://reaapi-test.clobotics.cn/' used in: Lcom/clobotics/retail/stitch/MainTestActivity;->initView()V
'http://reaapi.clobotics.cn/' used in: Lcom/clobotics/retail/zhiwei/network/HttpRequest;->getRequestApi(Ljava/util/Map; Ljava/lang/String; [I)Lcom/clobotics/retail/zhiwei/network/IRequestRetail;
'http://schemas.android.com/apk/res/android' used in: Landroid/support/graphics/drawable/TypedArrayUtils;->hasAttribute(Lorg/xmlpull/v1/XmlPullParser; Ljava/lang/String;)Z
'https://api.map.baidu.com/sdkcs/verify' used in: Lcom/baidu/lbsapi/auth/LBSAuthManager;->a(Z Ljava/lang/String; Ljava/util/Hashtable; [Ljava/lang/String; Ljava/lang/String;)V
'https://api.map.baidu.com/sdkcs/verify' used in: Lcom/baidu/lbsapi/auth/LBSAuthManager;->a(Z Ljava/lang/String; Ljava/util/Hashtable; Ljava/lang/String;)V
'https://bizman-test.chinacloudsites.cn/api/BizMan/uploadAppLogFile' used in: Lcom/clobotics/retail/request/b;->a(Ljava/io/File; Lcom/clobotics/retail/request/c;)V
'https://datax.baidu.com/xs.gif' used in: Lcom/baidu/mobstat/aa;->()V
'https://daup.map.baidu.com/cltr/rcvr' used in: Lcom/baidu/location/d/j;->f()Ljava/lang/String;
'https://dxp.baidu.com/autoTracker' used in: Lcom/baidu/mobstat/bg;->a(Landroid/content/Context;)Ljava/lang/String;
'https://dxp.baidu.com/circleConfig?' used in: Lcom/baidu/mobstat/bg;->a(Landroid/content/Context; Ljava/lang/String;)Ljava/lang/String;
'https://dxp.baidu.com/upgrade' used in: Lcom/baidu/mobstat/aa;->()V
'https://dxp.baidu.com/vizParser' used in: Lcom/baidu/mobstat/bg;->a()Ljava/lang/String;
'https://hmma.baidu.com/app.gif' used in: Lcom/baidu/mobstat/Config;->()V
'https://hmma.baidu.com/auto.gif' used in: Lcom/baidu/mobstat/LogSender;->a(Landroid/content/Context; Ljava/lang/String; Z)Z
'https://openrcv.baidu.com/1010/bplus.gif' used in: Lcom/baidu/mobstat/s;->()V
'https://retail.blob.core.chinacloudapi.cn/appdownload/version/KONet.txt' used in: Lcom/clobotics/retail/zhiwei/network/HttpRequest$23;->run()V
"javascript:window._automtj.getViewportTree('android', '" used in: Lcom/baidu/mobstat/bl;->b(Landroid/app/Activity; Landroid/webkit/WebView; Landroid/graphics/Rect;)V
'www.abcdefgzxy.com' used in: Lcom/zxy/tiny/core/HttpUrlConnectionFetcher$1;->verify(Ljava/lang/String; Ljavax/net/ssl/SSLSession;)Z

中危

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

位置: classes.dex
com.baidu.location.a.k;
com.clobotics.retail.zhiwei.view.HtmlWebView;
com.baidu.mobstat.StatService;

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/

中危

检测到2使用全局可读写操作文件。

位置: classes.dex
com.baidu.android.bbalbs.common.util.b;->a(Ljava.lang.String;)Z===>openFileOutput
com.baidu.mobstat.CarUUID;->a(Landroid.content.Context; Ljava.lang.String;)Z===>openFileOutput

在使用getDir、getSharedPreferences(SharedPreference)或openFileOutput时,如果设置了全局的可读权限,攻击者恶意读取文件内容,获取敏感信息。在设置文件属性时如果设置全局可写,攻击者可能会篡改、伪造内容,可以能会进行诈骗等行为,造成用户财产损失。建议:
(1)使用MODE_PRIVATE模式创建内部存储文件。
(2)加密存储敏感数据。
(3)避免在文件中存储明文和敏感信息。

参考案例:
http://wooyun.org/bugs/wooyun-2010-047172
http://wooyun.org/bugs/wooyun-2010-054438
http://wooyun.org/bugs/wooyun-2010-0151270

参考资料:
https://jaq.alibaba.com/blog.htm?id=56
https://jaq.alibaba.com/blog.htm?id=58
http://wolfeye.baidu.com/blog/global-rw-of-file
http://wolfeye.baidu.com/blog/global-rw-of-sharepreference/

低危

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

位置: classes.dex
Lcom/baidu/mobstat/bm$b;->b(I [B)[B
Lcom/baidu/mobstat/bm$b;->a(I [B)[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脚本,移除大部分系统输出代码。
经扫描该包仍存在大量系统输出代码,共发现13处系统输出代码.(此处扫描的系统输出代码,是指调用System.out.print*输出的,本应在打包平台移除的系统输出代码.)
各个bundle系统输出代码详情如下:

位置: classes.dex
com.facebook.stetho.dumpapp.plugins.HprofDumperPlugin;
com.baidu.mobstat.ca;
io.realm.internal.RealmCore;
com.bumptech.glide.disklrucache.DiskLruCache;
com.facebook.stetho.dumpapp.DumpappHttpSocketLikeHandler$DumpappLegacyHttpHandler;
com.baidu.mobstat.bw;
com.facebook.stetho.dumpapp.plugins.CrashDumperPlugin;
com.facebook.stetho.dumpapp.Dumper;
com.facebook.stetho.dumpapp.plugins.FilesDumperPlugin;
io.reactivex.exceptions.CompositeException$WrappedPrintStream;
com.clobotics.retail.zhiwei.utils.DateUtils;
com.clobotics.retail.zhiwei.utils.LocationUtils;
com.facebook.stetho.dumpapp.plugins.SharedPreferencesDumperPlugin;

低危

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

位置: classes.dex
com.zhy.http.okhttp.https.HttpsUtils$UnSafeHostnameVerifier;->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

警告

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

位置: classes.dex
com.clobotics.retail.zhiwei.utils.InstallUtil;->getInstallApkIntent
com.clobotics.retail.zhiwei.utils.ShowUtils$2;->onClick
com.clobotics.retail.zhiwei.utils.AppUtils;->checkVersion

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

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

警告

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

service com.baidu.location.f
receiver com.clobotics.retail.zhiwei.ui.broadcast.LanguageReceiver

建议:
(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安全技术解密与防范》

警告

检测到1个导出的隐式Service组件。
service com.baidu.location.f

建议:为了确保应用的安全性,启动Service时,请始终使用显式Intent,且不要为服务声明Intent过滤器。使用隐式Intent启动服务存在安全隐患,因为您无法确定哪些服务将响应Intent,且用户无法看到哪些服务已启动。从Android 5.0(API 级别 21)开始,如果使用隐式 Intent 调用 bindService(),系统会抛出异常。

参考资料:
https://developer.android.com/guide/components/intents-filters.html#Types

警告

检测到3潜在的XSS漏洞。

位置: classes.dex
com.baidu.location.a.k;->a(Landroid.content.Context; Landroid.webkit.WebView; Lcom.baidu.location.LocationClient;)V
com.baidu.mobstat.StatService;->a(Landroid.content.Context; Landroid.webkit.WebView; Landroid.webkit.WebViewClient; Landroid.webkit.WebChromeClient; Z)V
com.clobotics.retail.zhiwei.view.HtmlWebView;->init()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

警告

检测到5处IvParameterSpec的使用。

位置: classes.dex
com.baidu.android.bbalbs.common.a.a;->a(Ljava.lang.String; Ljava.lang.String; [B)[B
com.baidu.android.bbalbs.common.a.a;->b(Ljava.lang.String; Ljava.lang.String; [B)[B
com.baidu.android.common.security.AESUtil;->decrypt(Ljava.lang.String; Ljava.lang.String; [B)[B
com.baidu.android.common.security.AESUtil;->encrypt(Ljava.lang.String; Ljava.lang.String; [B)[B
com.baidu.mobstat.bm$a;->a([B [B [B)[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处provider的grantUriPermissions设置为true。
android.support.v4.content.FileProvider


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

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

警告

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

位置: classes.dex
okio.HashingSource;->(Lokio.Source; Lokio.ByteString; Ljava.lang.String;)V
com.baidu.android.common.security.AESUtil;->encrypt(Ljava.lang.String; Ljava.lang.String; [B)[B
com.baidu.android.bbalbs.common.a.a;->a(Ljava.lang.String; Ljava.lang.String; [B)[B
com.baidu.mobstat.bm$a;->a([B [B [B)[B
okio.ByteString;->hmac(Ljava.lang.String; Lokio.ByteString;)Lokio.ByteString;
com.baidu.android.common.security.AESUtil;->decrypt(Ljava.lang.String; Ljava.lang.String; [B)[B
okio.Buffer;->hmac(Ljava.lang.String; Lokio.ByteString;)Lokio.ByteString;
com.baidu.mobstat.bm$b;->a(I [B)[B
com.baidu.mobstat.bm$b;->b(I [B)[B
com.baidu.android.bbalbs.common.a.a;->b(Ljava.lang.String; Ljava.lang.String; [B)[B
okio.HashingSink;->(Lokio.Sink; Lokio.ByteString; Ljava.lang.String;)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跨站漏洞。
开发中...

应用证书