0

高危漏洞

5

中危漏洞

5

低危漏洞

6

警告

文件名 app-1.1.4-114-yingyongbao-release_2018-12-20_17-01-06_legu_signed.apk
上传者 iyaodi
文件大小 7.9725303649902MB
MD5 86ac5cbaac4bf2f3dfb82075fce06f1a
包名 com.js118114.speedup
Main Activity com.js118114.speedup.modular.wel.WelcomeActivity
Min SDK 14
Target SDK 19

权限列表

# 名称 说明 提示
0 android.permission.CALL_PHONE 允许应用程序在您不介入的情况下拨打电话。恶意应用程序可借此在您的话费单上产生意外通话费。请注意,此权限不允许应用程序拨打紧急呼救电话。 警告
1 android.permission.ACCESS_COARSE_LOCATION 访问大概的位置源(例如蜂窝网络数据库)以确定手机的大概位置(如果可以)。恶意应用程序可借此确定您所处的大概位置。 注意
2 android.permission.ACCESS_FINE_LOCATION 访问精准的位置源,例如手机上的全球定位系统(如果有)。恶意应用程序可能会借此确定您所处的位置,并可能消耗额外的电池电量。 注意
3 android.permission.ACCESS_LOCATION_EXTRA_COMMANDS 访问额外的位置信息提供程序命令。恶意应用程序可借此干扰GPS或其他位置源的正常工作。 注意
4 android.permission.ACCESS_LOCATION_EXTRA_COMMANDS 访问额外的位置信息提供程序命令。恶意应用程序可借此干扰GPS或其他位置源的正常工作。 注意
5 android.permission.BLUETOOTH 允许应用程序查看本地蓝牙手机的配置,以及建立或接受与配对设备的连接。 注意
6 android.permission.BROADCAST_STICKY 允许应用程序发送顽固广播,这些广播在结束后仍会保留。恶意应用程序可能会借此使手机耗用太多内存,从而降低其速度或稳定性。 注意
7 android.permission.CHANGE_WIFI_MULTICAST_STATE 允许应用程序接收并非直接向您的设备发送的数据包。这样在查找附近提供的服务时很有用。这种操作所耗电量大于非多播模式。 注意
8 android.permission.GET_TASKS 允许应用程序检索有关当前和最近运行的任务的信息。恶意应用程序可借此发现有关其他应用程序的保密信息。 注意
9 android.permission.READ_PHONE_STATE 允许应用程序访问设备的手机功能。有此权限的应用程序可确定此手机的号码和序列号,是否正在通话,以及对方的号码等。 注意
10 android.permission.RECEIVE_BOOT_COMPLETED 允许应用程序在系统完成启动后即自行启动。这样会延长手机的启动时间,而且如果应用程序一直运行,会降低手机的整体速度。 注意
11 android.permission.REORDER_TASKS 允许应用程序将任务移至前端和后台。恶意应用程序可借此强行进入前端,而不受您的控制。 注意
12 android.permission.SYSTEM_ALERT_WINDOW 允许应用程序显示系统警报窗口。恶意应用程序可借此掌控整个手机屏幕。 注意
13 android.permission.WRITE_SETTINGS 允许应用程序修改系统设置方面的数据。恶意应用程序可借此破坏您的系统配置。 注意
14 android.permission.WRITE_SYNC_SETTINGS 允许应用程序修改同步设置,例如是否为\“联系人\”启用同步。 注意
15 android.permission.ACCESS_NETWORK_STATE 允许应用程序查看所有网络的状态。 提示
16 android.permission.ACCESS_NETWORK_STATE 允许应用程序查看所有网络的状态。 提示
17 android.permission.ACCESS_NETWORK_STATE 允许应用程序查看所有网络的状态。 提示
18 android.permission.ACCESS_WIFI_STATE 允许应用程序查看有关WLAN状态的信息。 提示
19 android.permission.ACCESS_WIFI_STATE 允许应用程序查看有关WLAN状态的信息。 提示
20 android.permission.ACCESS_WIFI_STATE 允许应用程序查看有关WLAN状态的信息。 提示
21 android.permission.BLUETOOTH_ADMIN 允许应用程序配置本地蓝牙手机,以及发现远程设备并与其配对。 提示
22 android.permission.CAMERA 允许应用程序使用相机拍照,这样应用程序可随时收集进入相机镜头的图像。 提示
23 android.permission.CHANGE_NETWORK_STATE 允许应用程序更改网络连接的状态。 提示
24 android.permission.CHANGE_NETWORK_STATE 允许应用程序更改网络连接的状态。 提示
25 android.permission.CHANGE_WIFI_STATE 允许应用程序连接到WLAN接入点以及与WLAN接入点断开连接,并对配置的WLAN网络进行更改。 提示
26 android.permission.CHANGE_WIFI_STATE 允许应用程序连接到WLAN接入点以及与WLAN接入点断开连接,并对配置的WLAN网络进行更改。 提示
27 android.permission.CHANGE_WIFI_STATE 允许应用程序连接到WLAN接入点以及与WLAN接入点断开连接,并对配置的WLAN网络进行更改。 提示
28 android.permission.DISABLE_KEYGUARD 允许应用程序停用键锁和任何关联的密码安全设置。例如,在手机上接听电话时停用键锁,在通话结束后重新启用键锁。 提示
29 android.permission.EXPAND_STATUS_BAR 允许应用程序展开或收拢状态栏。 提示
30 android.permission.GET_PACKAGE_SIZE 允许应用程序检索其代码、数据和缓存大小 提示
31 android.permission.INTERNET 允许程序访问网络. 提示
32 android.permission.INTERNET 允许程序访问网络. 提示
33 android.permission.INTERNET 允许程序访问网络. 提示
34 android.permission.KILL_BACKGROUND_PROCESSES 无论内存资源是否紧张,都允许应用程序结束其他应用程序的后台进程。 提示
35 android.permission.MODIFY_AUDIO_SETTINGS 允许应用程序修改整个系统的音频设置,如音量和路由。 提示
36 android.permission.MOUNT_UNMOUNT_FILESYSTEMS 允许应用程序装载和卸载可移动存储器的文件系统。 提示
37 android.permission.READ_LOGS 允许应用程序从系统的各日志文件中读取信息。这样应用程序可以发现您的手机使用情况,但这些信息不应包含任何个人信息或保密信息。 提示
38 android.permission.READ_SYNC_SETTINGS 允许应用程序读取同步设置,例如是否为\“联系人\”启用同步。 提示
39 android.permission.READ_SYNC_STATS 允许应用程序读取同步统计信息;例如已发生的同步历史记录。 提示
40 android.permission.SET_TIME_ZONE 允许应用程序更改手机的时区。 提示
41 android.permission.SET_WALLPAPER 允许应用程序设置系统壁纸。 提示
42 android.permission.SET_WALLPAPER_HINTS 允许应用程序设置有关壁纸大小的提示。 提示
43 android.permission.VIBRATE 允许应用程序控制振动器。 提示
44 android.permission.VIBRATE 允许应用程序控制振动器。 提示
45 android.permission.WAKE_LOCK 允许应用程序防止手机进入休眠状态。 提示
46 android.permission.WRITE_EXTERNAL_STORAGE 允许应用程序写入SD卡。 提示

四大组件

组件名称

com.js118114.speedup.wxapi.WXEntryActivity
com.js118114.speedup.wxapi.WXPayEntryActivity
com.js118114.speedup.WBShareActivity
com.qq.e.ads.ADActivity
com.js118114.speedup.modular.wel.WelcomeActivity
com.js118114.speedup.modular.wel.WelcomeGuanggaoActivity
com.js118114.speedup.modular.login.LoginActivityOne
com.js118114.speedup.modular.login.LoginActivityTwo
com.js118114.speedup.function.toregiest.JiasuRegistrationInterfaceActivityNumber
com.js118114.speedup.function.toregiest.JiasuRegistrationInterfaceActivityVerCode
com.js118114.speedup.function.toregiest.JiasuRegistrationInterfaceActivityPassworld
com.js118114.speedup.modular.idandpassword.RegistrationInterfaceActivityNumber
com.js118114.speedup.modular.idandpassword.RegistrationInterfaceActivityVerCode
com.js118114.speedup.modular.idandpassword.RegistrationInterfaceActivityPassworld
com.js118114.speedup.modular.idandpassword.ForgotPasswordInterfaceActivityNumber
com.js118114.speedup.modular.idandpassword.ForgotPasswordInterfaceActivityVerCode
com.js118114.speedup.modular.idandpassword.ForgotPasswordInterfaceActivityPassword
com.js118114.speedup.modular.other.PrivacyAndPolicyActivity
com.js118114.speedup.function.HelpHActivity
com.js118114.speedup.function.YonghuxieyiHActivity
com.js118114.speedup.modular.sidebar.myacceleration.MyAccelerationActivity
com.js118114.speedup.function.FunctionMainActivity
com.js118114.speedup.function.ScanAdavertiseActivity
com.js118114.speedup.function.JiasuQianAdavertiseActivity
com.js118114.speedup.modular.sidebar.myacceleration.AccelerationDetailedActivity
com.js118114.speedup.modular.sidebar.speeduphistory.SpeedUpHistoryActivity
com.js118114.speedup.modular.sidebar.mysetting.MySettingActivity
com.js118114.speedup.modular.wel.IntroductionActivity
com.js118114.speedup.modular.sidebar.mysetting.AboutUsActivity
com.js118114.speedup.modular.sidebar.mysetting.feedback.FeedBackListActivity
com.js118114.speedup.modular.sidebar.mysetting.feedback.FeedBackDetailsActivity
com.js118114.speedup.modular.sidebar.mysetting.feedback.FeedBackReleaseActivity
com.js118114.speedup.modular.album.details.CutPhotoDetailActivity
com.js118114.speedup.modular.album.album.CutAlbumActivity
com.js118114.speedup.modular.sidebar.mysetting.bindonaccount.BindOnAccountActivity
com.js118114.speedup.modular.sidebar.mysetting.ChangeTelNumberActivityNumber
com.js118114.speedup.modular.zoom.ZoomImageActivity
com.js118114.speedup.function.notice.SysNoticeListActivity
com.js118114.speedup.function.notice.SysNoticeDetailListActivity.SysNoticeDetailListActivity
com.tencent.tauth.AuthActivity
com.tencent.connect.common.AssistActivity
com.sina.weibo.sdk.component.WeiboSdkBrowser
cn.jpush.android.ui.PushActivity
cn.jpush.android.ui.PopWinActivity

com.qq.e.comm.DownloadService
cn.jpush.android.service.PushService
cn.jpush.android.service.DaemonService
cn.jpush.android.service.DownloadService

com.android.panel.event.ADr
com.yqonline.core.receiver.VReceiver
com.js118114.speedup.jpush.JpushMessageReceiver
com.js118114.speedup.jpush.JpushMainReceiver
cn.jpush.android.service.PushReceiver
cn.jpush.android.service.AlarmReceiver

com.sensorsdata.analytics.android.sdk.SensorsDataContentProvider
cn.jpush.android.service.DataProvider
cn.jpush.android.service.DownloadProvider

第三方库

# 库名 介绍
0 com.tencent.bugly 腾讯Bugly,面向移动开发者提供最专业的Crash监控、崩溃分析等质量跟踪服务,为您修复用户的每一次Crash!
1 com.tencent.map 腾讯地图Android SDK是一套基于Android2.3及以上设备的应用接口,通过该接口,您可以方便地访问腾讯地图为您提供的高质量地点数据和服务,构建丰富而实用的地图及位置服务类应用。腾讯地图Android SDK除提供创建底图、缩放、平滑移图等基础功能外,还提供定位、地址解析、反地址解析、周边搜索、路线方案等拓展服务,助你在应用开发中事半功倍。腾讯地图Android SDK的服务需要注册,免费的向第三方提供,任何非盈利性网站均可使用。

静态扫描发现风险点

风险等级 风险名称

中危

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

位置: assets/gdt_plugin/gdtadv2.jar
com.qq.e.comm.plugin.m.a.c.a$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需要移除大部分日志打印代码。
经扫描该包仍存在大量打日志代码,共发现131处打日志代码.(此处扫描的日志打印代码,是指调用android.util.Log.* 打印的.)
详情如下:

位置: classes.dex
com.tencent.bugly.legu.proguard.v;->c(Ljava/lang/Runnable;)Z==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.lejiagu.crashreport.CrashReport;->postCatchedException(Ljava/lang/Throwable;)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.lejiagu.crashreport.CrashReport;->getUserSceneTagId(Landroid/content/Context;)I==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.CrashReport;->postCatchedException(Ljava/lang/Throwable; Z)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.lejiagu.crashreport.CrashReport;->setUserSceneTag(Landroid/content/Context; I)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.BuglyLog;->i(Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.CrashReport;->isLastSessionCrash()Z==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.CrashReport;->closeNativeReport()V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.b;->a(Landroid/content/Context; Lcom/tencent/bugly/legu/BuglyStrategy;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.CrashReport;->setUserId(Landroid/content/Context; Ljava/lang/String;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.CrashReport;->testANRCrash()V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.lejiagu.proguard.t;->a(Ljava/lang/Runnable;)Z==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.CrashReport;->isLastSessionCrash()Z==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.lejiagu.b;->a(Landroid/content/Context; Lcom/tencent/bugly/lejiagu/BuglyStrategy;)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.lejiagu.proguard.u;->a(I Ljava/lang/String; [Ljava/lang/Object;)Z==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.CrashReport;->getAppID()Ljava/lang/String;==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.lejiagu.crashreport.CrashReport;->testANRCrash()V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.lejiagu.crashreport.CrashReport;->setIsAppForeground(Landroid/content/Context; Z)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.CrashReport;->getUserDatasSize(Landroid/content/Context;)I==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.lejiagu.crashreport.CrashReport;->setUserId(Ljava/lang/String;)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.CrashReport;->setUserSceneTag(Landroid/content/Context; I)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.CrashReport;->setAppVersion(Landroid/content/Context; Ljava/lang/String;)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.CrashReport;->getUserId()Ljava/lang/String;==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.proguard.w;->a(I Ljava/lang/String; [Ljava/lang/Object;)Z==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.lejiagu.crashreport.CrashReport;->getAllUserDataKeys(Landroid/content/Context;)Ljava/util/Set;==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.lejiagu.crashreport.CrashReport;->testJavaCrash()V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.lejiagu.crashreport.CrashReport;->getSdkExtraData()Ljava/util/Map;==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.CrashReport;->getUserSceneTagId(Landroid/content/Context;)I==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.lejiagu.crashreport.CrashReport;->setAppVersion(Landroid/content/Context; Ljava/lang/String;)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.BuglyLog;->v(Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.lejiagu.proguard.u;->a(I Ljava/lang/String; [Ljava/lang/Object;)Z==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.CrashReport;->setUserId(Landroid/content/Context; Ljava/lang/String;)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.CrashReport;->getAppChannel()Ljava/lang/String;==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.CrashReport;->closeNativeReport()V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.lejiagu.crashreport.CrashReport;->closeNativeReport()V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.lejiagu.crashreport.CrashReport;->setUserId(Landroid/content/Context; Ljava/lang/String;)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.proguard.a;->c(Landroid/content/Context;)Ljava/lang/String;==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.lejiagu.proguard.a;->b(Landroid/content/Context;)Ljava/lang/String;==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.CrashReport;->getUserDatasSize(Landroid/content/Context;)I==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.proguard.w;->a(I Ljava/lang/String; [Ljava/lang/Object;)Z==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.lejiagu.crashreport.CrashReport;->putSdkData(Landroid/content/Context; Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.BuglyLog;->e(Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.lejiagu.crashreport.CrashReport;->closeCrashReport()V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.CrashReport;->closeCrashReport()V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.CrashReport;->setSdkExtraData(Landroid/content/Context; Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.lejiagu.crashreport.CrashReport;->testNativeCrash()V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.lejiagu.crashreport.CrashReport;->getAppVer()Ljava/lang/String;==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.CrashReport;->testJavaCrash()V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.CrashReport;->testNativeCrash()V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.lejiagu.crashreport.CrashReport;->startCrashReport()V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.CrashReport;->getUserData(Landroid/content/Context; Ljava/lang/String;)Ljava/lang/String;==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.CrashReport;->setJavascriptMonitor(Landroid/webkit/WebView; Z Z)Z==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.lejiagu.proguard.v;->b(Ljava/lang/String; Ljava/lang/String; Ljava/lang/String;)Z==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.lejiagu.crashreport.CrashReport;->getUserId()Ljava/lang/String;==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.lejiagu.b;->a(Landroid/content/Context; Ljava/lang/String; Z Lcom/tencent/bugly/lejiagu/BuglyStrategy;)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.lejiagu.crashreport.CrashReport;->putUserData(Landroid/content/Context; Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.proguard.v;->a(Ljava/lang/Runnable;)Z==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.CrashReport;->setSessionIntervalMills(J)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.lejiagu.crashreport.BuglyLog;->v(Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.lejiagu.crashreport.CrashReport;->setJavascriptMonitor(Landroid/webkit/WebView; Z Z)Z==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.b;->a(Landroid/content/Context; Ljava/lang/String; Z Lcom/tencent/bugly/legu/BuglyStrategy;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.proguard.a;->a(Landroid/content/Context;)Ljava/lang/String;==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.lejiagu.crashreport.CrashReport;->setAppChannel(Ljava/lang/String; Z)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.CrashReport;->getAppChannel()Ljava/lang/String;==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.CrashReport;->getAllUserDataKeys(Landroid/content/Context;)Ljava/util/Set;==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.CrashReport;->putSdkData(Landroid/content/Context; Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.CrashReport;->getAppVer()Ljava/lang/String;==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.CrashReport;->getAppID()Ljava/lang/String;==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.lejiagu.proguard.t;->c(Ljava/lang/Runnable;)Z==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.CrashReport;->setUserId(Ljava/lang/String;)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.lejiagu.proguard.u;->a(I Ljava/lang/String; [Ljava/lang/Object;)Z==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.CrashReport;->getUserSceneTagId(Landroid/content/Context;)I==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.lejiagu.crashreport.BuglyLog;->w(Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.CrashReport;->testJavaCrash()V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.CrashReport;->getSdkExtraData()Ljava/util/Map;==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.lejiagu.crashreport.CrashReport;->getAppChannel()Ljava/lang/String;==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.CrashReport;->getUserId()Ljava/lang/String;==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.lejiagu.proguard.a;->a(Landroid/content/Context;)Ljava/lang/String;==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.Bugly;->init(Landroid/content/Context; Ljava/lang/String; Z Lcom/tencent/bugly/legu/BuglyStrategy;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.CrashReport;->startCrashReport()V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.lejiagu.crashreport.BuglyLog;->i(Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.CrashReport;->removeUserData(Landroid/content/Context; Ljava/lang/String;)Ljava/lang/String;==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.BuglyLog;->d(Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.CrashReport;->getUserData(Landroid/content/Context; Ljava/lang/String;)Ljava/lang/String;==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.proguard.w;->a(I Ljava/lang/String; [Ljava/lang/Object;)Z==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.CrashReport;->putUserData(Landroid/content/Context; Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.CrashReport;->postCatchedException(Ljava/lang/Throwable; Z)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.BuglyLog;->w(Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.lejiagu.crashreport.CrashReport;->removeUserData(Landroid/content/Context; Ljava/lang/String;)Ljava/lang/String;==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.lejiagu.crashreport.CrashReport;->closeBugly()V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.lejiagu.proguard.a;->c(Landroid/content/Context;)Ljava/lang/String;==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.lejiagu.crashreport.CrashReport;->setSdkExtraData(Landroid/content/Context; Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.lejiagu.crashreport.CrashReport;->getAppID()Ljava/lang/String;==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.lejiagu.crashreport.BuglyLog;->d(Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.lejiagu.proguard.u;->a(I Ljava/lang/String; [Ljava/lang/Object;)Z==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.CrashReport;->getAllUserDataKeys(Landroid/content/Context;)Ljava/util/Set;==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.CrashReport;->testANRCrash()V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.CrashReport;->closeBugly()V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.b;->a(Landroid/content/Context; Lcom/tencent/bugly/legu/BuglyStrategy;)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.b;->a(Landroid/content/Context; Ljava/lang/String; Z Lcom/tencent/bugly/legu/BuglyStrategy;)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.lejiagu.crashreport.CrashReport;->getUserData(Landroid/content/Context; Ljava/lang/String;)Ljava/lang/String;==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.proguard.a;->b(Landroid/content/Context;)Ljava/lang/String;==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.CrashReport;->setIsDevelopmentDevice(Landroid/content/Context; Z)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.lejiagu.crashreport.CrashReport;->isLastSessionCrash()Z==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.lejiagu.crashreport.CrashReport;->setSessionIntervalMills(J)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.CrashReport;->getAppVer()Ljava/lang/String;==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.proguard.w;->a(I Ljava/lang/String; [Ljava/lang/Object;)Z==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.CrashReport;->removeUserData(Landroid/content/Context; Ljava/lang/String;)Ljava/lang/String;==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.proguard.x;->b(Ljava/lang/String; Ljava/lang/String; Ljava/lang/String;)Z==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.CrashReport;->testNativeCrash()V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.CrashReport;->setIsAppForeground(Landroid/content/Context; Z)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.CrashReport;->setUserSceneTag(Landroid/content/Context; I)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.lejiagu.crashreport.BuglyLog;->e(Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.lejiagu.crashreport.CrashReport;->getUserDatasSize(Landroid/content/Context;)I==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.bugly.legu.crashreport.CrashReport;->setUserId(Ljava/lang/String;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I

位置: assets/gdt_plugin/gdtadv2.jar
com.qq.e.comm.plugin.a.a;->b(I Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.beacontsa.cover.f;->a(Ljava/lang/String; Ljava/lang/String; [Ljava/lang/Object;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.qq.e.comm.plugin.a.a;->a(Ljava/lang/String; Z)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.qq.e.comm.plugin.m.a.c.c;->b(Ljava/lang/String;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.qq.e.comm.plugin.a.a;->b(Ljava/lang/String; Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.beacontsa.cover.f;->a(Ljava/lang/String; Ljava/lang/String; [Ljava/lang/Object;)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.qq.e.comm.plugin.a.a;->b(I Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
com.qq.e.comm.plugin.m.a.c.c;->a(Ljava/lang/String;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.beacontsa.cover.g;->c()Ljava/lang/String;==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.qq.e.comm.plugin.a.a;->b(I Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.beacontsa.cover.f;->a(Ljava/lang/String; Ljava/lang/String; [Ljava/lang/Object;)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.qq.e.comm.plugin.a.a;->b(I Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.qq.e.comm.plugin.a.a;->a(Ljava/lang/String; Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.tencent.beacontsa.cover.f;->a(Ljava/lang/String; Ljava/lang/String; [Ljava/lang/Object;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.qq.e.comm.plugin.a.a;->b(I Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.qq.e.comm.plugin.m.a.c.c;->c(Ljava/lang/String;)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I

中危

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

位置: classes.dex
com.tencent.bugly.legu.crashreport.CrashReport;->setJavascriptMonitor(Landroid.webkit.WebView; Z Z)Z
com.tencent.bugly.lejiagu.crashreport.CrashReport;->setJavascriptMonitor(Landroid.webkit.WebView; Z Z)Z

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

中危

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

位置: classes.dex
'http://android.bugly.qq.com/rqd/async' used in: Lcom/tencent/bugly/lejiagu/crashreport/common/strategy/StrategyBean;->()V
'http://android.bugly.qq.com/rqd/async' used in: Lcom/tencent/bugly/legu/crashreport/common/strategy/StrategyBean;->()V
'http://rqd.uu.qq.com/rqd/sync' used in: Lcom/tencent/bugly/lejiagu/crashreport/common/strategy/StrategyBean;->()V
'http://rqd.uu.qq.com/rqd/sync' used in: Lcom/tencent/bugly/legu/crashreport/common/strategy/StrategyBean;->()V

位置: assets/gdt_plugin/gdtadv2.jar
'http://analytics.map.qq.com/?sf2' used in: Lc/t/m/li/ts/u;->run()V
'http://c.gdt.qq.com/gdt_trace_a.fcg?actionid=%d&targettype=6&tagetid=%s&sellerid=%s&clickid=%s' used in: Lcom/qq/e/comm/plugin/a/a;->a(I Lcom/qq/e/comm/plugin/b/e;)Ljava/lang/String;
'http://d.gdt.qq.com/fcg-bin/gdt_appdetail.fcg?ico=1&appid=' used in: Lcom/qq/e/comm/plugin/n/a;->a(Ljava/lang/String; I Lcom/qq/e/comm/plugin/n/d;)V
'http://d.gdt.qq.com/fcg-bin/gdt_appdetail.fcg?ico=1&op_appid=' used in: Lcom/qq/e/comm/plugin/n/a;->a(Ljava/lang/String; I Lcom/qq/e/comm/plugin/n/d;)V
'http://e.qq.com' used in: Lcom/qq/e/comm/plugin/o/b;->k(Lcom/qq/e/comm/plugin/o/b;)V
'http://info.gdt.qq.com/information' used in: Lcom/qq/e/comm/plugin/n/a;->a(Lcom/qq/e/comm/plugin/a/a; Lcom/qq/e/comm/plugin/n/a; Lcom/qq/e/comm/plugin/n/g;)V
'http://mi.gdt.qq.com/gdt_mview.fcg' used in: Lcom/qq/e/comm/plugin/n/a;->b(Lcom/qq/e/comm/plugin/a/a; Lcom/qq/e/comm/plugin/n/a; Lcom/qq/e/comm/plugin/n/g;)V
'http://mi.gdt.qq.com/gdt_mview.fcg' used in: Lcom/qq/e/comm/plugin/n/f;->onException(Ljava/lang/Exception;)V
'http://oth.update.mdt.qq.com:8080/beacon/vercheck' used in: Lcom/tencent/beacontsa/cover/h;->b()Z
'http://oth.update.mdt.qq.com:8080/beacon/vercheck' used in: Lcom/tencent/beacontsa/cover/e;->a(Z)V
'http://qzonestyle.gtimg.cn/qzone/biz/gdt/mob/sdk/v2/android01/appdetail.html' used in: Lcom/qq/e/comm/plugin/d/b;->a(Ljava/lang/String; Ljava/lang/String; Ljava/lang/String;)V
'http://qzonestyle.gtimg.cn/qzone/biz/gdt/mob/sdk/v2/android01/appwall.html' used in: Lcom/qq/e/comm/plugin/c/b;->onAfterCreate(Landroid/os/Bundle;)V
'http://qzonestyle.gtimg.cn/qzone/biz/gdt/mob/sdk/v2/android01/appwall.html' used in: Lcom/qq/e/comm/plugin/c/a;->prepare()V
'http://qzonestyle.gtimg.cn/qzone/biz/gdt/mob/sdk/v2/android01/banner.html' used in: Lcom/qq/e/comm/plugin/d/a;->fetchAd()V
'http://qzonestyle.gtimg.cn/qzone/biz/gdt/mob/sdk/v2/android01/download.html' used in: Lcom/qq/e/comm/plugin/g/a;->onAfterCreate(Landroid/os/Bundle;)V
'http://qzonestyle.gtimg.cn/qzone/biz/gdt/mob/sdk/v2/android01/grid.html#cacheOnly=true&supportUnionAPP=1' used in: Lcom/qq/e/comm/plugin/j/b;->(Landroid/content/Context; Ljava/lang/String; Ljava/lang/String;)V
'http://qzonestyle.gtimg.cn/qzone/biz/gdt/mob/sdk/v2/android01/grid.html#posid=' used in: Lcom/qq/e/comm/plugin/j/a;->onResume()V
'http://qzonestyle.gtimg.cn/qzone/biz/gdt/mob/sdk/v2/android01/interstitial.html' used in: Lcom/qq/e/comm/plugin/l/a;->loadAd()V
'http://qzonestyle.gtimg.cn/qzone/biz/gdt/mob/sdk/v2/android02/images/tsa_ad_logo.png' used in: Lcom/qq/e/comm/plugin/o/b;->f(Lcom/qq/e/comm/plugin/o/b;)V
'http://qzonestyle.gtimg.cn/qzone/biz/gdt/mob/sdk/v2/android02/splash.html#posid=' used in: Lcom/qq/e/comm/plugin/o/a;->fetchAndShowIn(Landroid/view/ViewGroup;)V
'http://qzonestyle.gtimg.cn/qzone/biz/gdt/mob/sdk/v2/android03/js-release/%s/native.js' used in: Lcom/qq/e/comm/plugin/i/e;->()V
'http://sdk.e.qq.com/click' used in: Lcom/qq/e/comm/plugin/n/h;->a(Ljava/lang/String; Ljava/lang/String; Lorg/json/JSONObject; Lcom/qq/e/comm/plugin/a/n; Lcom/qq/e/comm/plugin/a/f; Ljava/util/Map; Lcom/qq/e/comm/net/NetworkCallBack;)V
'http://sdk.e.qq.com/disp' used in: Lcom/qq/e/comm/plugin/n/h;->a(Ljava/util/List; Ljava/lang/String; Lcom/qq/e/comm/plugin/a/n; Ljava/util/Map; Lcom/qq/e/comm/net/NetworkCallBack;)V
'http://sdk.e.qq.com/getad' used in: Lcom/qq/e/comm/plugin/n/h;->a(Ljava/lang/String; Ljava/lang/String; Lcom/qq/e/comm/plugin/a/n; Ljava/util/Map; Lcom/qq/e/comm/net/NetworkCallBack;)V
'http://sdk.e.qq.com/msg' used in: Lcom/qq/e/comm/plugin/n/h;->a(I Lorg/json/JSONObject; Lcom/qq/e/comm/plugin/a/n; Ljava/lang/String;)V
'http://t.gdt.qq.com/conv/sdk/spa/conv' used in: Lcom/qq/e/comm/plugin/a/a;->b(I Ljava/lang/String;)V
'http://t.gdt.qq.com/conv/src/6/conv' used in: Lcom/qq/e/comm/plugin/l/b;->onStop()V
'http://v.gdt.qq.com/gdt_stats.fcg' used in: Lcom/qq/e/comm/plugin/n/e;->a(I I I I I I Ljava/lang/String; Lcom/qq/e/comm/plugin/n/a; Lcom/qq/e/comm/plugin/n/e$b;)V
'http://v.gdt.qq.com/gdt_stats.fcg' used in: Lcom/qq/e/comm/plugin/r/c/j;->a(Lcom/qq/e/comm/plugin/r/i; Lcom/qq/e/comm/plugin/r/b/d;)V
'http://v.gdt.qq.com/gdt_stats.fcg' used in: Lcom/qq/e/comm/plugin/n/e;->a(Lcom/qq/e/comm/plugin/n/e$a; Ljava/util/List; Lcom/qq/e/comm/plugin/n/a; Lcom/qq/e/comm/plugin/n/e$b;)V
'https://lbs.map.qq.com/loc' used in: Lc/t/m/li/ts/e;->a(I)Ljava/lang/String;

中危

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

位置: classes.dex
com.tencent.bugly.legu.crashreport.CrashReport;
com.tencent.bugly.lejiagu.crashreport.CrashReport;

位置: assets/gdt_plugin/gdtadv2.jar
com.qq.e.comm.plugin.r.d;
com.qq.e.comm.plugin.i.a.d;
com.qq.e.comm.plugin.p.c;

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/

低危

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

位置: classes.dex
com.tencent.bugly.lejiagu.crashreport.CrashReport;->setJavascriptMonitor(Landroid.webkit.WebView; Z Z)Z
com.tencent.bugly.legu.crashreport.CrashReport;->setJavascriptMonitor(Landroid.webkit.WebView; Z Z)Z

位置: assets/gdt_plugin/gdtadv2.jar
com.qq.e.comm.plugin.r.g;->(Landroid.content.Context; Landroid.webkit.WebView;)V
com.qq.e.comm.plugin.p.c;->onAfterCreate(Landroid.os.Bundle;)V
com.qq.e.comm.plugin.i.a.d;->(Landroid.content.Context;)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/CBC/PKCS5Padding' used in: Lcom/tencent/bugly/lejiagu/proguard/ad;->a([B)[B
'DES/CBC/PKCS5Padding' used in: Lcom/tencent/bugly/legu/proguard/af;->a([B)[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

低危

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

位置: assets/gdt_plugin/gdtadv2.jar
Lcom/qq/e/comm/plugin/util/b;->a(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脚本,移除大部分系统输出代码。
经扫描该包仍存在大量系统输出代码,共发现2处系统输出代码.(此处扫描的系统输出代码,是指调用System.out.print*输出的,本应在打包平台移除的系统输出代码.)
各个bundle系统输出代码详情如下:

位置: classes.dex
com.tencent.bugly.legu.proguard.f;
com.tencent.bugly.lejiagu.proguard.f;

低危

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

位置: assets/gdt_plugin/gdtadv2.jar
com.qq.e.comm.plugin.m.a.c.a$a;->verify(Ljava.lang.String; Ljavax.net.ssl.SSLSession;)Z
com.qq.e.comm.plugin.util.m$a$1;->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

警告

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

位置: assets/gdt_plugin/gdtadv2.jar
com.qq.e.comm.plugin.p.c$4;->shouldOverrideUrlLoading
com.qq.e.comm.plugin.r.c.k;->a
com.qq.e.comm.plugin.a.a;->a
com.qq.e.comm.plugin.a.a;->c
com.qq.e.comm.plugin.o.b;->k
com.qq.e.comm.plugin.n.a.b$2;->b
com.qq.e.comm.plugin.q.a;->q
com.qq.e.comm.plugin.r.c.g;->a
com.qq.e.comm.plugin.b.a$1;->a
com.qq.e.comm.plugin.b.n;->a
com.qq.e.comm.plugin.i.a.d$1;->onDownloadStart
com.qq.e.comm.plugin.i.a.d$2;->shouldOverrideUrlLoading
com.qq.e.comm.plugin.b.q;->a

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

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

警告

检测1处組件設置了android.intent.category.BROWSABLE属性。
com.tencent.tauth.AuthActivity


在AndroidManifest文件中定义了android.intent.category.BROWSABLE属性的组件,可以通过浏览器唤起,这会导致远程命令执行漏洞攻击。建议:
(1)APP中任何接收外部输入数据的地方都是潜在的攻击点,过滤检查来自网页的参数。
(2)不要通过网页传输敏感信息,有的网站为了引导已经登录的用户到APP上使用,会使用脚本动态的生成URL Scheme的参数,其中包括了用户名、密码或者登录态token等敏感信息,让用户打开APP直接就登录了。恶意应用也可以注册相同的URL Sechme来截取这些敏感信息。Android系统会让用户选择使用哪个应用打开链接,但是如果用户不注意,就会使用恶意应用打开,导致敏感信息泄露或者其他风险。

參考案例:
http://www.wooyun.org/bugs/wooyun-2014-073875
http://www.wooyun.org/bugs/wooyun-2014-067798

参考资料:
http://wolfeye.baidu.com/blog/intent-scheme-url/
http://www.jssec.org/dl/android_securecoding_en.pdf
http://drops.wooyun.org/mobile/15202
http://blog.csdn.net/l173864930/article/details/36951805
http://drops.wooyun.org/papers/2893

警告

检测到3潜在的XSS漏洞。

位置: assets/gdt_plugin/gdtadv2.jar
com.qq.e.comm.plugin.i.a.d;->(Landroid.content.Context;)V
com.qq.e.comm.plugin.p.c;->onAfterCreate(Landroid.os.Bundle;)V
com.qq.e.comm.plugin.r.d;->(Landroid.content.Context; Lcom.qq.e.comm.plugin.r.c;)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

警告

检测到7处IvParameterSpec的使用。

位置: classes.dex
com.tencent.bugly.legu.proguard.a;->a(I [B [B)[B
com.tencent.bugly.legu.proguard.ae;->a([B)[B
com.tencent.bugly.legu.proguard.af;->a([B)[B
com.tencent.bugly.lejiagu.proguard.a;->a(I [B [B)[B
com.tencent.bugly.lejiagu.proguard.ac;->a([B)[B
com.tencent.bugly.lejiagu.proguard.ad;->a([B)[B

位置: assets/gdt_plugin/gdtadv2.jar
com.tencent.beacontsa.cover.f;->a(Z Ljava.lang.String; [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处使用空Intent构造PendingIntent。

位置: assets/gdt_plugin/gdtadv2.jar
com.qq.e.comm.plugin.b.b.b;->a(Z)Landroid.app.PendingIntent;

使用pendingIntent时候,如果使用了一个空Intent,会导致恶意用户劫持Intent的内容。禁止使用空intent去构造pendingIntent。建议:
禁止使用空intent去构造pendingIntent。

参考资料:
http://wolfeye.baidu.com/blog/pendingintent-leak-information
http://bbs.mob.com/thread-5249-1-1.html

警告

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

位置: classes.dex
com.tencent.bugly.lejiagu.proguard.a;->a(I [B [B)[B
com.tencent.bugly.legu.proguard.a;->a(I [B [B)[B
com.tencent.bugly.legu.proguard.ae;->a([B)[B
com.tencent.bugly.lejiagu.proguard.ac;->a([B)[B

位置: assets/gdt_plugin/gdtadv2.jar
com.qq.e.comm.plugin.util.b;->a(Ljava.lang.String;)Ljava.lang.String;
com.tencent.beacontsa.cover.f;->a(Z Ljava.lang.String; [B)[B
c.t.m.li.ts.F;->b([B Ljava.lang.String;)[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跨站漏洞。
开发中...

应用证书