漏洞分析

0

高危漏洞

5

中危漏洞

3

低危漏洞

6

警告

文件名 47fb939fe68ff8ef09323f7ee9c7201f.apk
上传者 d4by7o
文件大小 12.960198402405MB
MD5 47fb939fe68ff8ef09323f7ee9c7201f
包名 com.qiyi.video.reader
Main Activity com.qiyi.video.reader.activity.FlashActivity
Min SDK 14
Target SDK 26

权限列表

# 名称 说明 提示
0 android.permission.ACCESS_COARSE_LOCATION 访问大概的位置源(例如蜂窝网络数据库)以确定手机的大概位置(如果可以)。恶意应用程序可借此确定您所处的大概位置。 注意
1 android.permission.BLUETOOTH 允许应用程序查看本地蓝牙手机的配置,以及建立或接受与配对设备的连接。 注意
2 android.permission.GET_TASKS 允许应用程序检索有关当前和最近运行的任务的信息。恶意应用程序可借此发现有关其他应用程序的保密信息。 注意
3 android.permission.READ_PHONE_STATE 允许应用程序访问设备的手机功能。有此权限的应用程序可确定此手机的号码和序列号,是否正在通话,以及对方的号码等。 注意
4 android.permission.RECEIVE_BOOT_COMPLETED 允许应用程序在系统完成启动后即自行启动。这样会延长手机的启动时间,而且如果应用程序一直运行,会降低手机的整体速度。 注意
5 android.permission.REORDER_TASKS 允许应用程序将任务移至前端和后台。恶意应用程序可借此强行进入前端,而不受您的控制。 注意
6 android.permission.WRITE_SETTINGS 允许应用程序修改系统设置方面的数据。恶意应用程序可借此破坏您的系统配置。 注意
7 android.permission.ACCESS_NETWORK_STATE 允许应用程序查看所有网络的状态。 提示
8 android.permission.ACCESS_WIFI_STATE 允许应用程序查看有关WLAN状态的信息。 提示
9 android.permission.CAMERA 允许应用程序使用相机拍照,这样应用程序可随时收集进入相机镜头的图像。 提示
10 android.permission.CHANGE_NETWORK_STATE 允许应用程序更改网络连接的状态。 提示
11 android.permission.CHANGE_WIFI_STATE 允许应用程序连接到WLAN接入点以及与WLAN接入点断开连接,并对配置的WLAN网络进行更改。 提示
12 android.permission.GET_ACCOUNTS 允许应用程序获取手机已知的帐户列表。 提示
13 android.permission.INTERNET 允许程序访问网络. 提示
14 android.permission.MODIFY_AUDIO_SETTINGS 允许应用程序修改整个系统的音频设置,如音量和路由。 提示
15 android.permission.MOUNT_UNMOUNT_FILESYSTEMS 允许应用程序装载和卸载可移动存储器的文件系统。 提示
16 android.permission.READ_LOGS 允许应用程序从系统的各日志文件中读取信息。这样应用程序可以发现您的手机使用情况,但这些信息不应包含任何个人信息或保密信息。 提示
17 android.permission.VIBRATE 允许应用程序控制振动器。 提示
18 android.permission.WAKE_LOCK 允许应用程序防止手机进入休眠状态。 提示
19 android.permission.WRITE_EXTERNAL_STORAGE 允许应用程序写入SD卡。 提示

四大组件

组件名称

com.qiyi.video.reader.activity.MainActivity
com.qiyi.video.reader.activity.RedirectActivity
com.qiyi.video.reader.activity.MemberClassifyActivity
com.qiyi.video.reader.activity.BookTTSIndexActivity
com.qiyi.video.reader.activity.GuideActivity
com.qiyi.video.reader.activity.ChapterCommentActivity
com.qiyi.video.reader.activity.RankActivity
com.qiyi.video.reader.activity.BasePayActivity
com.qiyi.video.reader.activity.BookDetailActivity
com.qiyi.video.reader.activity.SearchActivity
com.qiyi.video.reader.activity.ReadActivity
com.qiyi.video.reader.activity.ClassifyDetailActivity
com.qiyi.video.reader.activity.BookIndexActivity
com.qiyi.video.reader.activity.EpubBookIndexActivity
com.qiyi.video.reader.activity.RecordPurchaseActivity
com.qiyi.video.reader.activity.RecordRechargeActivity
com.qiyi.video.reader.activity.WebViewActivity
com.qiyi.video.reader.activity.HelpFeedbackActivity
com.qiyi.video.reader.activity.BookSpecialActivity
com.qiyi.video.reader.activity.BookNewActivity
com.qiyi.video.reader.activity.AboutUsActivity
com.qiyi.video.reader.activity.BookListActivity
com.qiyi.video.reader.activity.MoreSettingsActivity
com.qiyi.video.reader.activity.FontActivity
com.qiyi.video.reader.activity.SeeMoreActivity
com.qiyi.video.reader.activity.VoucherActivity
com.qiyi.video.reader.activity.BookBagActivity
com.qiyi.video.reader.award.giftpack.newuserV2.activity.TimeRewardActivity
com.qiyi.video.reader.activity.FlowerQuesActivity
com.qiyi.video.reader.activity.LotteryActivity
com.qiyi.video.reader.activity.MonthBuyActivity
com.qiyi.video.reader.activity.PayResultSuccessActivity
com.qiyi.video.reader.activity.PayResultFailActivity
com.qiyi.video.reader.activity.MonthProtocolActivity
com.qiyi.video.reader.activity.ReadingRecordActivity
com.qiyi.video.reader.activity.MyRankActivity
com.qiyi.video.reader.activity.SettingActivity
com.qiyi.video.reader.activity.ShortcutFailureActivity
com.qiyi.video.reader.activity.UserGenesActivity
com.qiyi.video.reader.activity.LiteratureMemberActivity
com.qiyi.video.reader.activity.MemberPrivilegeActivity
com.qiyi.video.reader.activity.FreeBookStoreActivity
com.qiyi.video.reader.activity.ScreenTimeActivity
com.qiyi.video.reader.activity.BookNewChannelActivity
com.qiyi.video.reader.award.giftpack.newuserV2.activity.GiftTaskActivity
com.qiyi.video.reader.award.giftpack.newuserV2.activity.ContainerActivity
com.qiyi.video.reader.activity.VipChannelActivity
com.qiyi.video.reader.activity.VipAutoRenewActivity
com.qiyi.video.reader.vertical.BTestActivity
com.qiyi.video.reader.activity.FlashActivity
org.qiyi.android.video.ui.account.PhoneAccountActivity
org.qiyi.android.video.ui.account.dialog.GuideReLoginActivity
org.qiyi.android.video.ui.account.dialog.VerificationPhoneActivity
org.qiyi.android.video.ui.account.lite.LiteAccountActivity
org.qiyi.android.video.ui.account.areacode.AreaCodeListActivity
com.iqiyi.passportsdkdemo.webview.WebViewActivity4PassportLite
org.qiyi.android.video.ui.account.interflow.InterflowActivity
org.qiyi.android.video.ui.account.interflow.AuthorizationActivity
com.iqiyi.passportsdkdemo.webview.CommonWebViewNewActivity
com.iqiyi.passportsdkdemo.webview.OnLineServiceActivity
com.qiyi.video.reader.wxapi.WXEntryActivity
com.alipay.sdk.app.H5PayActivity
com.alipay.sdk.auth.AuthActivity
com.qiyi.video.reader.wxapi.WXPayEntryActivity
com.tencent.tauth.AuthActivity
com.tencent.connect.common.AssistActivity
com.qiyi.share.helper.SharePanelActivity
com.qiyi.share.model.ShareSinaActivity
com.qiyi.share.model.ShareQQActivity
com.sina.weibo.sdk.web.WeiboSdkWebActivity
com.sina.weibo.sdk.share.WbShareTransActivity
com.iqiyi.paopao.circle.CircleMainActivity
com.iqiyi.paopao.common.component.photoselector.ui.activity.ImageSelectActivity
com.iqiyi.paopao.common.component.photoselector.ui.activity.CommImagePreviewActivity
com.iqiyi.paopao.common.report.ReportActivity
com.iqiyi.paopao.detail.view.activity.FeedDetailActivity
com.iqiyi.paopao.detail.view.activity.ImagePreviewActivity
com.iqiyi.paopao.publisher.view.activity.PicTxtPublisherActivity
com.iqiyi.paopao.publisher.view.activity.FeedPublisherEntranceActivity
com.qiyi.video.wxapi.WXPayEntryActivity
com.iqiyi.pay.vip.activity.PhonePayActivity
com.iqiyi.pay.common.activity.QYCommonPayActivity
com.iqiyi.pay.paymethods.H5PayActivity
com.iqiyi.pay.coupon.activities.VipCouponListActivity
com.iqiyi.pay.coupon.activities.VipCouponExchangeActivity
com.iqiyi.basepay.webview.PayWebViewActivity
com.iqiyi.pay.banneduser.BannedUserActivity
com.iqiyi.pay.wallet.pwd.activities.WSecuritySettingActivity
com.iqiyi.pay.wallet.pwd.activities.WPayPwdControllerActivity
com.iqiyi.pay.wallet.balance.activities.WBalanceControllerActivity
com.iqiyi.pay.wallet.balance.activities.WPopVerifyPwdActivity
com.iqiyi.pay.wallet.bankcard.activities.WPopBankCardListActivity
com.iqiyi.pay.wallet.balance.activities.WBalanceActivity
com.iqiyi.pay.wallet.bankcard.activities.WBankCardListActivity
com.iqiyi.pay.wallet.bankcard.activities.WBankCardControllerActivity
com.iqiyi.pay.finance.activities.WFinanceActivity
com.iqiyi.pay.wallet.bankcard.activities.WBankCardPayActivity
com.iqiyi.pay.wallet.scan.ui.CaptureActivity
org.qiyi.pluginlibrary.component.InstrActivityProxy0
org.qiyi.pluginlibrary.component.InstrActivityProxy1
org.qiyi.pluginlibrary.component.InstrActivityProxy2
org.qiyi.pluginlibrary.component.InstrActivityProxyTranslucent0
org.qiyi.pluginlibrary.component.InstrActivityProxyTranslucent1
org.qiyi.pluginlibrary.component.InstrActivityProxyTranslucent2
org.qiyi.pluginlibrary.component.InstrActivityProxyLandscape0
org.qiyi.pluginlibrary.component.InstrActivityProxyLandscape1
org.qiyi.pluginlibrary.component.InstrActivityProxyLandscape2
org.qiyi.pluginlibrary.component.InstrActivityProxyHandleConfigChange0
org.qiyi.pluginlibrary.component.InstrActivityProxyHandleConfigChange1
org.qiyi.pluginlibrary.component.InstrActivityProxyHandleConfigChange2
org.qiyi.android.commonphonepad.pushmessage.huawei.HWPushTransferActivity

com.qiyi.video.reader.service.StartQiyiReaderService
com.iqiyi.passportsdk.internal.ipc.UserTrackerService
com.iqiyi.passportsdk.interflow.core.InterflowService
org.qiyi.pluginlibrary.install.PluginInstallerService
org.qiyi.pluginlibrary.pm.PluginPackageManagerService
org.qiyi.pluginlibrary.component.ServiceProxy0
org.qiyi.pluginlibrary.component.ServiceProxy1
org.qiyi.pluginlibrary.component.ServiceProxy2
com.xiaomi.push.service.XMPushService
com.xiaomi.push.service.XMJobService
com.xiaomi.mipush.sdk.PushMessageHandler
com.xiaomi.mipush.sdk.MessageHandleService
com.huawei.android.pushagent.PushService

com.qiyi.video.reader.receiver.PushMessageReceiver
com.xiaomi.push.service.receivers.NetworkStatusReceiver
com.xiaomi.push.service.receivers.PingReceiver
com.iqiyi.pushsdk.xiaomi.XiaoMiPushMessageReceiver
com.iqiyi.pushsdk.huawei.HWPushMessageReceiver
com.huawei.android.pushagent.PushEventReceiver
com.huawei.android.pushagent.PushBootReceiver

com.iqiyi.passportsdk.internal.ipc.PsdkContentProvider
org.qiyi.basecore.db.QiyiContentProvider
android.support.v4.content.FileProvider
android.arch.lifecycle.ProcessLifecycleOwnerInitializer

第三方库

# 库名 介绍
0 com.google.protobuf Protocol Buffers - Google's data interchange format https://developers.google.com/protocol-buffers/
1 android.support.multidex DEPRECATED
2 butterknife View "injection" library for Android.
3 okhttp3 An HTTP+SPDY client for Android and Java applications.
4 com.facebook.cache.common An image management library by FaceBook.
5 com.alipay.sdk 支付宝移动支付功能
6 com.huawei.android.pushagent 华为推送
7 org.simple.eventbus A lightweight eventbus library for android, simplifies communication between Activities, Fragments, Threads, Services, etc.
8 com.facebook.rebound A Java library that models spring dynamics and adds real world physics to your app.
9 com.baidu.android.pushservice 百度云推送(Push)是一站式APP信息推送平台,为企业和开发者提供免费的消息推送服务,开发者可以通过云推送向用户精准推送通知和自定义消息以提升用户留存率和活跃度。
10 com.facebook.imagepipeline An image management library by FaceBook.
11 org.apache.http The Apache HttpComponents™ project is responsible for creating and maintaining a toolset of low level Java components focused on HTTP and associated protocols.
12 com.baidu.mapapi 百度地图 Android SDK是一套基于Android 2.1及以上版本设备的应用程序接口。 您可以使用该套 SDK开发适用于Android系统移动设备的地图应用,通过调用地图SDK接口,您可以轻松访问百度地图服务和数据,构建功能丰富、交互性强的地图类应用程序。
13 com.google.gson A Java serialization library that can convert Java Objects into JSON and back.
14 com.xiaomi.mipush.sdk 小米推送(MiPush)是小米公司为开发者提供的消息推送服务,通过在云端和客户端之间建立一条稳定、可靠的长连接,为开发者提供向客户端应用推送实时消息的服务,帮助开发者有效地拉动用户活跃。
15 org.apache.thrift Apache Thrift 是 Facebook 实现的一种高效的、支持多种编程语言的远程服务调用的框架。
16 com.tencent.mm.sdk 微信支付
17 com.tencent.tauth 腾讯QQ互联平台为广大开发者整理了SDK列表,辅助开发者快速接入QQ登录、分享等功能。QQ互联是腾讯旗下的开放平台,通过QQ互联,网站主和开发者可以申请接入QQ登录、用户可以使用QQ账号登录接入的站点,通过添加分享和赞组件,将站点内容分享到QQ空间和朋友网,通过获取API授权,网站主还可以将用户操作同步到QQ空间和朋友网。
18 okhttp3 An HTTP+SPDY client for Android and Java applications.
19 org.simple.eventbus A lightweight eventbus library for android, simplifies communication between Activities, Fragments, Threads, Services, etc.
20 com.tencent.connect 腾讯开放平台
21 org.apache.http The Apache HttpComponents™ project is responsible for creating and maintaining a toolset of low level Java components focused on HTTP and associated protocols.
22 com.sina.weibo 新浪微博开放平台(Weibo Open Platform)是基于新浪微博海量用户和强大的传播能力,接入第三方合作伙伴服务,向用户提供丰富应用和完善服务的开放平台。将你的服务接入微博平台,有助于推广产品,增加网站/应用的流量、拓展新用户,获得收益。
23 org.json 根据Gson库使用的要求,将JSONObject格式的String 解析成实体

静态扫描发现风险点

风险等级 风险名称

中危

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

中危

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

位置: classes.dex
com.iqiyi.basepay.f.con;
com.baidu.tts.loopj.MySSLSocketFactory$1;

位置: classes2.dex
org.qiyi.net.toolbox.HttpsTool$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

中危

检测到1个未移除的敏感Test或Debug组件

com.qiyi.video.reader.vertical.BTestActivity

建议:
在正式发布app前移除敏感的Test或Debug组件

中危

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

位置: classes.dex
com.iqiyi.passportsdk.thirdparty.BindPhoneWebView;->addJS()V
com.iqiyi.passportsdk.thirdparty.BindPhoneWebView;->addJS()V
com.huawei.android.pushselfshow.richpush.html.HtmlViewer;->enableJavaJS(Ljava.lang.String;)V
com.huawei.android.pushselfshow.richpush.html.HtmlViewer;->enableJavaJS(Ljava.lang.String;)V
com.qiyi.video.reader.activity.WebViewActivity;->onCreate(Landroid.os.Bundle;)V
com.qiyi.video.reader.activity.WebViewActivity;->onCreate(Landroid.os.Bundle;)V
com.qiyi.video.reader.activity.WebViewActivity;->onCreate(Landroid.os.Bundle;)V

位置: classes2.dex
org.qiyi.basecore.widget.commonwebview.CommonWebViewNew;->init()V
org.qiyi.basecore.widget.commonwebview.CommonWebViewNew;->urlFilter(Ljava.lang.String;)Ljava.lang.String;
org.qiyi.basecore.widget.commonwebview.CommonWebViewNew;->setSupportWebSocket()V
org.qiyi.basecore.widget.commonwebview.CustomWebChromeClient;->setIsNeedSupportUploadForKitKat(Z)V
org.qiyi.basecore.widget.commonwebview.CommonWebViewNew;->addJavascriptInterface(Ljava.lang.Object; Ljava.lang.String;)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

中危

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

位置: classes.dex
com.qiyi.video.reader.activity.WebViewActivity;
com.qiyi.video.reader.activity.WebViewActivity$1;
com.iqiyi.basepay.webview.PayWebViewActivity;
com.qiyi.video.reader.activity.WebViewActivity$2;

位置: classes2.dex
org.qiyi.basecore.widget.commonwebview.webviewfactory.WebViewPool;
com.tencent.open.SocialApiIml;
org.qiyi.basecore.widget.commonwebview.CommonWebViewNew;
org.qiyi.basecore.widget.commonwebview.CustomWebViewClient;

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/

低危

检测9处Intent Scheme URI漏洞。

位置: classes.dex
Lcom/baidu/android/pushservice/PushServiceReceiver;->a(Landroid/content/Context; Ljava/lang/String; Ljava/lang/String; Lcom/baidu/android/pushservice/message/PublicMsg;)V
Lcom/baidu/android/pushservice/message/PublicMsg;->startApplicationLauncher(Landroid/content/Context; Ljava/lang/String; Ljava/lang/String;)V
Lcom/baidu/android/pushservice/message/PublicMsg;->handle(Landroid/content/Context; Ljava/lang/String; Ljava/lang/String;)V
Lcom/baidu/android/pushservice/message/PublicMsg;->handlePrivateNotification(Landroid/content/Context; Ljava/lang/String; Ljava/lang/String; Ljava/lang/String;)V
Lcom/baidu/android/pushservice/mzproxy/MzNotifyActivity;->onCreate(Landroid/os/Bundle;)V
Lcom/huawei/android/pushselfshow/a/a;->f()V
Lcom/huawei/android/pushselfshow/richpush/html/a/d;->a(Ljava/lang/String; Ljava/lang/String; Z)V

位置: classes2.dex
Lcom/xiaomi/mipush/sdk/x;->a(Landroid/content/Context; Ljava/lang/String; Ljava/util/Map;)Landroid/content/Intent;
Lorg/qiyi/android/commonphonepad/pushmessage/huawei/HWPushTransferActivity;->handleHuaweiPushJump()V


Intent Scheme URI是一种特殊的URL格式,用来通过Web页面启动已安装应用的Activity组件,大多数主流浏览器都支持此功能。如果在app中,没有检查获取到的load_url的值,攻击者可以构造钓鱼网站,诱导用户点击加载,就可以盗取用户信息。所以,对Intent URI的处理不当时,就会导致基于Intent的攻击。建议:
如果使用了Intent.parseUri函数,获取的intent必须严格过滤,intent至少包含addCategory(“android.intent.category.BROWSABLE”),setComponent(null),setSelector(null)3个策略。

参考资料:
http://wolfeye.baidu.com/blog/intent-scheme-url/
http://drops.wooyun.org/papers/2893
http://drops.wooyun.org/mobile/15202

低危

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

位置: classes.dex
com.iqiyi.basepay.f.nul;->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

低危

检测到1处地方在自定义实现的WebViewClient类在onReceivedSslError调用proceed()方法。

位置: classes.dex
com.alipay.sdk.auth.AuthActivity$con;->onReceivedSslError(Landroid.webkit.WebView; Landroid.webkit.SslErrorHandler; Landroid.net.http.SslError;)V

Android WebView组件加载网页发生证书认证错误时,会调用WebViewClient类的onReceivedSslError方法,如果该方法实现调用了handler.proceed()来忽略该证书错误,则会受到中间人攻击的威胁,可能导致隐私泄露。建议:
当发生证书认证错误时,采用默认的处理方法handler.cancel(),停止加载问题页面当发生证书认证错误时,采用默认的处理方法handler.cancel(),停止加载问题页面。

参考案例:
http://www.wooyun.org/bugs/wooyun-2010-0109266

参考资料:
https://jaq.alibaba.com/blog.htm?id=60
http://wolfeye.baidu.com/blog/webview-ignore-ssl-error/

警告

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

activity com.qiyi.video.reader.activity.MainActivity
activity com.qiyi.video.reader.activity.RedirectActivity
activity org.qiyi.android.video.ui.account.PhoneAccountActivity
activity org.qiyi.android.video.ui.account.interflow.InterflowActivity
activity com.qiyi.video.reader.wxapi.WXEntryActivity
activity com.qiyi.video.reader.wxapi.WXPayEntryActivity
activity com.tencent.tauth.AuthActivity
activity com.sina.weibo.sdk.share.WbShareTransActivity
activity com.qiyi.video.wxapi.WXPayEntryActivity
activity com.iqiyi.pay.vip.activity.PhonePayActivity
activity com.iqiyi.pay.common.activity.QYCommonPayActivity
activity org.qiyi.android.commonphonepad.pushmessage.huawei.HWPushTransferActivity
service com.iqiyi.passportsdk.interflow.core.InterflowService
service com.xiaomi.mipush.sdk.PushMessageHandler
receiver com.qiyi.video.reader.receiver.PushMessageReceiver
receiver com.xiaomi.push.service.receivers.NetworkStatusReceiver
receiver com.iqiyi.pushsdk.xiaomi.XiaoMiPushMessageReceiver
receiver com.iqiyi.pushsdk.huawei.HWPushMessageReceiver
receiver com.huawei.android.pushagent.PushEventReceiver
receiver com.huawei.android.pushagent.PushBootReceiver

建议:
(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.iqiyi.passportsdk.interflow.core.InterflowService

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

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

警告

检测5处組件設置了android.intent.category.BROWSABLE属性。
com.qiyi.video.reader.activity.MainActivity
com.qiyi.video.reader.activity.RedirectActivity
com.tencent.tauth.AuthActivity
com.iqiyi.pay.vip.activity.PhonePayActivity
com.iqiyi.pay.common.activity.QYCommonPayActivity


在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

警告

检测到16潜在的XSS漏洞。

位置: classes.dex
com.alipay.sdk.auth.AuthActivity;->onCreate(Landroid.os.Bundle;)V
com.alipay.sdk.j.com5;->a(Landroid.app.Activity; Ljava.lang.String; Ljava.lang.String;)Landroid.webkit.WebView;
com.baidu.android.pushservice.richmedia.MediaViewActivity;->onCreate(Landroid.os.Bundle;)V
com.iqiyi.passportsdk.thirdparty.EzWebView;->initSettings()V
com.huawei.android.pushselfshow.richpush.html.HtmlViewer;->a()V
com.iqiyi.pay.monthly.fragments.MonthlyManagerFragmentTw;->a(I Ljava.lang.String;)V
com.iqiyi.pay.paymethods.H5PayFragment;->s()V
com.iqiyi.pay.paymethods.NewH5PayFragment;->r()V
com.iqiyi.basepay.webview.PayWebViewActivity;->p()V
com.qiyi.video.reader.activity.WebViewActivity;->onCreate(Landroid.os.Bundle;)V

位置: classes2.dex
com.tencent.connect.auth.AuthDialog;->d()V
org.qiyi.basecore.widget.commonwebview.webviewfactory.WebViewPool;->setDefaultWebViewSetting(Lorg.qiyi.basecore.widget.commonwebview.ScrollWebView;)V
com.sina.weibo.sdk.web.WeiboSdkWebActivity;->initWebView()V
com.tencent.open.PKDialog;->initViews()V
com.tencent.open.SocialApiIml;->writeEncryToken(Landroid.content.Context;)V
com.tencent.open.TDialog;->b()V

允许WebView执行JavaScript(setJavaScriptEnabled),有可能导致XSS攻击。建议尽量避免使用。
(1)API等于高高于17的Android系统。出于安全考虑,为了防止Java层的函数被随意调用,Google在4.2版本之后,规定允许被调用的函数必须以@JavascriptInterface进行注解。
(2)API等于高高于17的Android系统。建议不要使用addJavascriptInterface接口,以免带来不必要的安全隐患,如果一定要使用该接口,建议使用证书校验。
u(3)使用removeJavascriptInterface移除Android系统内部的默认内置接口:searchBoxJavaBridge_、accessibility、accessibilityTraversal。

参考案例:
www.wooyun.org/bugs/wooyun-2015-0140708
www.wooyun.org/bugs/wooyun-2016-0188252

参考资料:
http://jaq.alibaba.com/blog.htm?id=48
http://blog.nsfocus.net/android-webview-remote-code-execution-vulnerability-analysis

警告

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


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

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

警告

这个app应该声明permission的"android:protectionLevel"属性值为"signature"或者"signatureOrSystem",保证其他app无法注册或者从这个app接收消息。有安全隐患的permission如下:
android.permission.ACCESS_NETWORK_STATE normal

动态扫描发现风险点

风险等级 风险名称

服务端分析

风险等级 风险名称

警告

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

警告

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

应用证书