漏洞分析

0

高危漏洞

5

中危漏洞

3

低危漏洞

6

警告

文件名 %E6%B5%A6%E5%8F%91%E6%89%8B%E6%9C%BA%E9%93%B6%E8%A1%8C.apk
上传者 Howind
文件大小 61.525319099426MB
MD5 762027f139a869533f7ff492e8af7f4b
包名 cn.com.spdb.mobilebank.per
Main Activity cn.com.spdb.mobilebank.per.activity.SplashActivity
Min SDK 10
Target SDK 23

权限列表

# 名称 说明 提示
0 android.permission.CALL_PHONE 允许应用程序在您不介入的情况下拨打电话。恶意应用程序可借此在您的话费单上产生意外通话费。请注意,此权限不允许应用程序拨打紧急呼救电话。 警告
1 android.permission.READ_SMS 允许应用程序读取您的手机或SIM卡中存储的短信。恶意应用程序可借此读取您的机密信息。 警告
2 android.permission.ACCESS_COARSE_LOCATION 访问大概的位置源(例如蜂窝网络数据库)以确定手机的大概位置(如果可以)。恶意应用程序可借此确定您所处的大概位置。 注意
3 android.permission.ACCESS_FINE_LOCATION 访问精准的位置源,例如手机上的全球定位系统(如果有)。恶意应用程序可能会借此确定您所处的位置,并可能消耗额外的电池电量。 注意
4 android.permission.BLUETOOTH 允许应用程序查看本地蓝牙手机的配置,以及建立或接受与配对设备的连接。 注意
5 android.permission.GET_TASKS 允许应用程序检索有关当前和最近运行的任务的信息。恶意应用程序可借此发现有关其他应用程序的保密信息。 注意
6 android.permission.READ_CONTACTS 允许应用程序读取您手机上存储的所有联系人(地址)数据。恶意应用程序可借此将您的数据发送给其他人。 注意
7 android.permission.READ_PHONE_STATE 允许应用程序访问设备的手机功能。有此权限的应用程序可确定此手机的号码和序列号,是否正在通话,以及对方的号码等。 注意
8 android.permission.RECEIVE_BOOT_COMPLETED 允许应用程序在系统完成启动后即自行启动。这样会延长手机的启动时间,而且如果应用程序一直运行,会降低手机的整体速度。 注意
9 android.permission.RECEIVE_SMS 允许应用程序接收和处理短信。恶意应用程序可借此监视您的信息,或者将信息删除而不向您显示。 注意
10 android.permission.RECORD_AUDIO 允许应用程序访问录音路径。 注意
11 android.permission.SYSTEM_ALERT_WINDOW 允许应用程序显示系统警报窗口。恶意应用程序可借此掌控整个手机屏幕。 注意
12 android.permission.WRITE_SETTINGS 允许应用程序修改系统设置方面的数据。恶意应用程序可借此破坏您的系统配置。 注意
13 android.permission.WRITE_SMS 允许应用程序写入手机或SIM卡中存储的短信。恶意应用程序可借此删除您的信息。 注意
14 android.permission.ACCESS_NETWORK_STATE 允许应用程序查看所有网络的状态。 提示
15 android.permission.ACCESS_WIFI_STATE 允许应用程序查看有关WLAN状态的信息。 提示
16 android.permission.BLUETOOTH_ADMIN 允许应用程序配置本地蓝牙手机,以及发现远程设备并与其配对。 提示
17 android.permission.CAMERA 允许应用程序使用相机拍照,这样应用程序可随时收集进入相机镜头的图像。 提示
18 android.permission.CHANGE_CONFIGURATION 允许应用程序更改当前配置,例如语言设置或整体的字体大小。 提示
19 android.permission.CHANGE_NETWORK_STATE 允许应用程序更改网络连接的状态。 提示
20 android.permission.CHANGE_WIFI_STATE 允许应用程序连接到WLAN接入点以及与WLAN接入点断开连接,并对配置的WLAN网络进行更改。 提示
21 android.permission.DISABLE_KEYGUARD 允许应用程序停用键锁和任何关联的密码安全设置。例如,在手机上接听电话时停用键锁,在通话结束后重新启用键锁。 提示
22 android.permission.FLASHLIGHT 允许应用程序控制闪光灯。 提示
23 android.permission.GET_ACCOUNTS 允许应用程序获取手机已知的帐户列表。 提示
24 android.permission.INTERNET 允许程序访问网络. 提示
25 android.permission.MANAGE_ACCOUNTS 允许应用程序执行添加、删除帐户及删除其密码之类的操作。 提示
26 android.permission.MODIFY_AUDIO_SETTINGS 允许应用程序修改整个系统的音频设置,如音量和路由。 提示
27 android.permission.MOUNT_UNMOUNT_FILESYSTEMS 允许应用程序装载和卸载可移动存储器的文件系统。 提示
28 android.permission.READ_LOGS 允许应用程序从系统的各日志文件中读取信息。这样应用程序可以发现您的手机使用情况,但这些信息不应包含任何个人信息或保密信息。 提示
29 android.permission.RESTART_PACKAGES 允许程序自己重启或重启其他程序 提示
30 android.permission.VIBRATE 允许应用程序控制振动器。 提示
31 android.permission.WAKE_LOCK 允许应用程序防止手机进入休眠状态。 提示
32 android.permission.WRITE_EXTERNAL_STORAGE 允许应用程序写入SD卡。 提示

四大组件

组件名称

cn.com.spdb.mobilebank.per.activity.SplashActivity
cn.com.spdb.mobilebank.per.activity.VoiceMutualActivity
cn.com.spdb.mobilebank.per.activity.MainActivity
cn.com.spdb.mobilebank.per.activity.LoginActivity
cn.com.spdb.mobilebank.per.activity.BankCardManageEditActivity
cn.com.spdb.mobilebank.per.activity.RegularFunctionActivity
cn.com.spdb.mobilebank.per.activity.SettingActivity
cn.com.spdb.mobilebank.per.activity.PushNewsTestActivity
cn.com.spdb.mobilebank.per.activity.ComWebviewActivity
cn.com.spdb.mobilebank.per.activity.TransferAccDialog
cn.com.spdb.mobilebank.per.activity.TransferAccDialog2
cn.com.spdb.mobilebank.per.activity.ScanLoginConfirmActivity
cn.com.spdb.mobilebank.per.activity.ScanLoginFailActivity
cn.com.spdb.mobilebank.per.activity.HCEPaymentTransResultActivity
cn.com.spdb.mobilebank.per.activity.ContactsActivity
cn.com.spdb.mobilebank.per.activity.DownloadPDFActivity
com.google.zxing.client.android.CaptureActivity
cn.com.spdb.mobilebank.per.activity.ChartBarActivity
cn.com.spdb.mobilebank.per.activity.JubpChartBarActivity
cn.com.spdb.mobilebank.per.activity.ElectronicBillingActivity
cn.com.spdb.mobilebank.per.activity.InnerBankBillingActivity
cn.com.spdb.mobilebank.per.activity.PhoneBankBillingActivity
cn.com.spdb.mobilebank.per.activity.GoldenActivity
cn.com.spdb.mobilebank.per.choicecity.CityChoiceActivity
cn.com.spdb.mobilebank.per.activity.CreateQRActivity
cn.com.spdb.mobilebank.per.activity.LiveEncoderActivity
cn.com.spdb.mobilebank.per.activity.ScanningActivity
cn.com.spdb.mobilebank.per.quickpay.SpdbQuickGatheringActivity
cn.com.spdb.mobilebank.per.activity.MyFootprintActivity
cn.com.spdb.mobilebank.per.quickpay.QuickpassPaySelectActivity
cn.com.spdb.mobilebank.per.quickpay.QuickpassPayAddActivity
cn.com.spdb.mobilebank.per.quickpay.QuickpassPayListActivity
cn.com.spdb.mobilebank.per.quickpay.QuickpassPayAddComfrimActivity
cn.com.spdb.mobilebank.per.activity.DialogActivity
cn.com.spdb.mobilebank.per.activity.UserSetActivity
cn.com.spdb.mobilebank.per.activity.ConnectBankActivity
cn.com.spdb.mobilebank.per.activity.Golden_BeanActivity
cn.com.spdb.mobilebank.per.activity.CouponsShare
cn.com.spdb.mobilebank.per.activity.SalesInfoDetailActivity
cn.com.spdb.mobilebank.per.activity.NearByActivity
cn.com.spdb.mobilebank.per.activity.PreferenceCommercialTenantActivity
cn.com.spdb.mobilebank.per.dot.NodeBaseActivity
cn.com.spdb.mobilebank.per.dot.NodeDetailBaseActivity
cn.com.spdb.mobilebank.per.dot.SPDBRouteMapView
cn.com.spdb.mobilebank.per.community.CitySelectActivity
cn.com.spdb.mobilebank.per.community.CommunityCityChoiceActivity
cn.com.spdb.mobilebank.per.community.CommunityDetailActivity
cn.com.spdb.mobilebank.per.community.CommunityListActivity
cn.com.spdb.mobilebank.per.community.DiscountDetailActivity
cn.com.spdb.mobilebank.per.community.MyCommunityListActivity
cn.com.spdb.mobilebank.per.community.RecommmendMoreActivity
cn.com.spdb.mobilebank.per.activity.PersonInfoManagerActivity
cn.com.spdb.mobilebank.per.activity.SaveUserNickNameActivity
cn.com.spdb.mobilebank.per.activity.ClipActivity
cn.com.spdb.mobilebank.per.activity.TotalAssetsActivity
cn.com.spdb.mobilebank.per.activity.TotalBebtActivity
cn.com.spdb.mobilebank.per.activity.DeviceBindActivity
cn.com.spdb.mobilebank.per.activity.CloudPayActivity
cn.com.spdb.mobilebank.per.activity.facever.LivenessDetectionMainActivity
cn.com.spdb.mobilebank.per.activity.facever.FaceVerLivenessActivity
cn.com.spdb.mobilebank.per.activity.facever.FaceVerStartActivity
cn.com.spdb.mobilebank.per.activity.facelogin.FaceLoginStartActivity
cn.com.spdb.mobilebank.per.activity.facelogin.FaceLoginVerLivenessActivity
cn.com.spdb.mobilebank.per.activity.facelogin.FaceLoginLivenessActivity
cn.com.spdb.mobilebank.per.activity.facever.TransFaceVerLivenessActivity
cn.com.spdb.mobilebank.per.activity.facever.ComFaceVerLivenessActivity
cn.com.spdb.mobilebank.per.activity.RemittancePageActivity
cn.com.spdb.mobilebank.per.activity.FundResultPageActivity
cn.com.spdb.mobilebank.per.activity.FinanceResultPageActivity
cn.com.spdb.mobilebank.per.creadit.InteGralMallBaseActivity
cn.com.spdb.mobilebank.per.creadit.InteGralMallDetailActivity
cn.com.spdb.mobilebank.per.activity.IdCardOnePicActivity
cn.com.spdb.mobilebank.per.activity.IdCardPhotoActivity
cn.com.spdb.mobilebank.per.activity.DiDiFinanceActivity
cn.com.spdb.mobilebank.per.activity.SpdbMyFinanceRecordActivity
cn.com.spdb.mobilebank.per.activity.CallManagerResultActivity
cn.com.spdb.mobilebank.per.utils.CropImage
cn.com.spdb.mobilebank.per.transcommunity.TransCommunityActivity
cn.com.spdb.mobilebank.per.activity.RemittanceGuideActivity
cn.com.spdb.mobilebank.per.anychat.SpdbActivity
cn.com.spdb.mobilebank.per.anychat.VideoActivity
cn.com.spdb.mobilebank.per.activity.TakePicActivity
cn.com.spdb.mobilebank.per.anychat.FileUploadActivity
cn.com.spdb.mobilebank.per.activity.OnlineCustomerServiceActivity
cn.com.spdb.mobilebank.per.activity.OnlineAdvertActivity
cn.com.spdb.mobilebank.per.activity.ImageDetailActivity
cn.com.spdb.mobilebank.per.activity.TransferPayAccDialog
cn.com.spdb.mobilebank.per.activity.SpeechServiceActivity
cn.com.spdb.mobilebank.per.activity.BankItemFunctionHintActivity
cn.com.spdb.mobilebank.per.activity.IDCardLoadActivity
cn.com.spdb.mobilebank.per.activity.IDCardOcrLoadActivity
cn.com.spdb.mobilebank.per.activity.PayManageActivity
cn.com.spdb.mobilebank.per.activity.QRCodePayActivity
cn.com.spdb.mobilebank.per.activity.PayDetailActivity
cn.com.spdb.mobilebank.per.activity.PayResultActivity
cn.com.spdb.mobilebank.per.activity.SNPayActivity
cn.com.spdb.mobilebank.per.activity.ATMWithdrawActivity
cn.com.spdb.mobilebank.per.activity.MakingQRcodeActivity
cn.com.spdb.mobilebank.per.activity.ThreePartyOpenAccountActivity
cn.com.spdb.mobilebank.per.activity.MenuSearchActivity
cn.com.spdb.mobilebank.per.activity.PushNewsActivity
cn.com.spdb.mobilebank.per.activity.PayPasswordActivity
com.intsig.idcardscan.sdk.ISCardScanActivity
cn.com.spdb.mobilebank.per.activity.OCRBankCardPreviewActivity
com.intsig.ccrengine.ISCardScanActivity
cn.com.spdb.mobilebank.per.activity.OCRIDCardPreviewActivity
com.igexin.sdk.PushActivity
com.spdb.tradingcommunity.library.activity.TradingCommunityActivity
com.spdb.tradingcommunity.library.activity.GoldDetailActivity
com.spdb.tradingcommunity.library.activity.AccountDetailActivity
com.spdb.tradingcommunity.library.activity.InstructionsActivity
com.spdb.tradingcommunity.library.activity.AccountReleaseWebActivity
com.spdb.tradingcommunity.library.activity.NobleMetalActivity
com.spdb.tradingcommunity.library.activity.AgreementActivity
com.spdb.invest.view.sub.SettingKlineIndicator
com.spdb.invest.view.sub.AddIndicator
com.spdb.invest.view.sub.BedDSLV
com.spdb.invest.view.sub.SettingKAverage
com.spdb.invest.view.sub.SettingBoll
com.spdb.invest.view.sub.SettingBias
com.spdb.invest.view.sub.SettingCci
com.spdb.invest.view.sub.SettingDma
com.spdb.invest.view.sub.SettingKdj
com.spdb.invest.view.sub.SettingMacd
com.spdb.invest.view.sub.SettingRsi
com.spdb.invest.view.sub.SettingWr
com.spdb.invest.view.sub.SettingArbr
com.spdb.invest.view.sub.SettingCR
com.spdb.invest.view.sub.SettingPSY
com.spdb.invest.view.sub.SettingDMI
com.spdb.invest.view.sub.SettingVOL
com.spdb.invest.view.sub.SettingZLJC
com.spdb.invest.view.sub.SettingOBV
com.spdb.invest.view.sub.SettingEMA
com.spdb.invest.view.sub.SettingASI
com.spdb.invest.view.sub.SettingDPO
com.spdb.invest.view.sub.SettingVR
com.cjt2325.cameralibrary.activity.TPOAActivity
com.cjt2325.cameralibrary.activity.TPOAPictureActivity

cn.com.spdb.mobilebank.per.service.ProcessService
cn.com.spdb.mobilebank.per.service.HCEHostApduService
com.gieseckedevrient.android.pushclient.HcePushService
com.oliveapp.camerasdk.MediaSaveService
com.sitco.service.HttpUtilsService
cn.com.spdb.mobilebank.per.payonline.HceBankService
com.igexin.sdk.PushService
com.igexin.download.DownloadService

com.gieseckedevrient.android.pushclient.PushBroadCastReceiver
com.gieseckedevrient.android.hceclient.PushRecieveMsgReceiver
cn.com.spdb.mobilebank.per.receiver.NotificationReceiver
cn.com.spdb.mobilebank.per.receiver.PushDemoReceiver
com.igexin.sdk.PushReceiver
com.igexin.sdk.PushManagerReceiver
com.igexin.download.DownloadReceiver

com.igexin.download.DownloadProvider

第三方库

# 库名 介绍
0 com.alibaba.fastjson Fast JSON Processor https://github.com/alibaba/fastjson/wiki
1 com.handmark.pulltorefresh DEPRECATED
2 com.bigkoo.convenientbanner Simple and convenient banner, loop viewpager with 3D effects
3 okhttp3 An HTTP+SPDY client for Android and Java applications.
4 com.google.zxing Official ZXing ("Zebra Crossing") project home
5 com.google.gson A Java serialization library that can convert Java Objects into JSON and back.
6 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.

静态扫描发现风险点

风险等级 风险名称

中危

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

位置: classes2.dex
com.spdb.invest.http.SPDBSSLSocketFactory$1;
cn.com.spdb.mobilebank.per.e.b;
cn.com.spdb.mobilebank.per.utils.ai$b;
com.lzy.okgo.https.HttpsUtils$1;

当移动App客户端使用https或ssl/tls进行通信时,如果不校验证书的可信性,将存在中间人攻击漏洞,可导致信息泄露,传输数据被篡改,甚至通过中间人劫持将原有信息替换成恶意链接或恶意代码程序,以达到远程控制等攻击意图。建议:
对SSL证书进行强校验,包括签名CA是否合法、证书是否是自签名、主机域名是否匹配、证书是否过期等。

参考案例:
www.wooyun.org/bugs/wooyun-2014-079358

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

中危

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

cn.com.spdb.mobilebank.per.activity.PushNewsTestActivity

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

中危

检测到2处中间人攻击漏洞。

位置: classes2.dex
com.spdb.invest.http.SPDBHttpClientUtil;->getDefaultHttpClient()Lorg.apache.http.impl.client.DefaultHttpClient;
cn.com.spdb.mobilebank.per.e.a;->(Ljava.security.KeyStore;)V

setHostnameVerifier方法设置ALLOW_ALL_HOSTNAME_VERIFIER,直接接受任意域名,可能造成中间人攻击漏洞。建议:
对SSL证书进行强校验,包括签名CA是否合法、证书是否是自签名、主机域名是否匹配、证书是否过期等。

参考案例:
http://www.wooyun.org/bugs/wooyun-2010-042710
http://www.wooyun.org/bugs/wooyun-2010-052339
http://www.wooyun.org/bugs/wooyun-2016-0190773

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

中危

该app需要移除大部分日志打印代码。
经扫描该包仍存在大量打日志代码,共发现23处打日志代码.(此处扫描的日志打印代码,是指调用android.util.Log.* 打印的.)
详情如下:

位置: classes2.dex
cn.com.spdb.mobilebank.per.utils.a.a.a;->b(Landroid/content/Context;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
cn.com.spdb.mobilebank.per.utils.a.a.c;->f(Landroid/content/Context;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.spdb.invest.util.Logger;->log(Ljava/lang/String; Ljava/lang/Exception;)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
cn.com.spdb.mobilebank.per.utils.a.a.c;->b(Landroid/content/Context;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.spdb.invest.util.Logger;->log(Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.spdb.tradingcommunity.library.view.expandablelistview.ReflectionUtils;->invokeMethod(Ljava/lang/Class; Ljava/lang/String; [Ljava/lang/Class; Ljava/lang/Object; [Ljava/lang/Object;)Ljava/lang/Object;==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.spdb.tradingcommunity.library.view.expandablelistview.ReflectionUtils;->getFieldValue(Ljava/lang/Class; Ljava/lang/String; Ljava/lang/Object;)Ljava/lang/Object;==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
cn.com.spdb.mobilebank.per.utils.a.a.c;->c(Landroid/content/Context;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
cn.com.spdb.mobilebank.per.utils.a.a.d;->a(Landroid/content/Context; I)Z==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
cn.com.spdb.mobilebank.per.utils.a.a.a;->a(Landroid/content/Context; I)Z==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.lzy.okgo.utils.OkLogger;->v(Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->v(Ljava/lang/String; Ljava/lang/String;)I
com.lzy.okgo.utils.OkLogger;->e(Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.lzy.okgo.utils.OkLogger;->i(Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->i(Ljava/lang/String; Ljava/lang/String;)I
cn.com.spdb.mobilebank.per.utils.a.a.b;->a(Landroid/content/Context; I)Z==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
cn.com.spdb.mobilebank.per.utils.a.a.c;->e(Landroid/content/Context;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
cn.com.spdb.mobilebank.per.utils.a.a.c;->d(Landroid/content/Context;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.spdb.tradingcommunity.library.view.expandablelistview.ReflectionUtils;->setFieldValue(Ljava/lang/Class; Ljava/lang/String; Ljava/lang/Object; Ljava/lang/Object;)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
com.lzy.okgo.utils.OkLogger;->w(Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->w(Ljava/lang/String; Ljava/lang/String;)I
cn.com.spdb.mobilebank.per.utils.a.a.c;->a(Landroid/content/Context; I)Z==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
cn.com.spdb.mobilebank.per.utils.a.a.d;->b(Landroid/content/Context;)V==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
cn.com.spdb.mobilebank.per.utils.a.a.c;->a()I==>android.util.Log;->e(Ljava/lang/String; Ljava/lang/String;)I
com.lzy.okgo.utils.OkLogger;->d(Ljava/lang/String; Ljava/lang/String;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I
com.spdb.invest.util.Logger;->log(Ljava/lang/String;)V==>android.util.Log;->d(Ljava/lang/String; Ljava/lang/String;)I

中危

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

位置: classes2.dex
'http://books.google.' used in: Lcom/google/zxing/client/android/LocaleManager;->isBookSearchUrl(Ljava/lang/String;)Z
'http://google.com/books' used in: Lcom/google/zxing/client/android/LocaleManager;->isBookSearchUrl(Ljava/lang/String;)Z
'http://schemas.android.com/apk/res/android' used in: Landroid/support/graphics/drawable/d;->a(Lorg/xmlpull/v1/XmlPullParser; Ljava/lang/String;)Z
'http://schemas.android.com/apk/res/android' used in: Lcom/spdb/invest/widget/WriteableImageView;->(Landroid/content/Context; Landroid/util/AttributeSet;)V
'javascript:WebViewJavascriptBridge.' used in: Lcom/spdb/tradingcommunity/library/web/BridgeUtil;->parseFunctionName(Ljava/lang/String;)Ljava/lang/String;

低危

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

位置: classes2.dex
'DES/CBC/PKCS5Padding' used in: Lcn/com/spdb/mobilebank/per/j/h;->(Ljava/lang/String; Ljava/lang/String;)V
'DES/ECB/NoPadding' used in: Lorg/apache/http/impl/auth/NTLMEngineImpl;->lmHash(Ljava/lang/String;)[B
'DES/ECB/NoPadding' used in: Lorg/apache/http/impl/auth/NTLMEngineImpl;->lmResponse([B [B)[B
'DES/ECB/NoPadding' used in: Lorg/apache/http/impl/auth/NTLMEngineImpl$CipherGen;->getLanManagerSessionKey()[B

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

参考资料:
http://drops.wooyun.org/tips/15870
https://developer.android.com/training/articles/keystore.html
http://wolfeye.baidu.com/blog/weak-encryption/
http://www.freebuf.com/articles/terminal/99868.html

低危

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

位置: classes2.dex
Lcn/com/spdb/mobilebank/per/activity/fingerlogin/a;->a(Ljava/lang/String; Ljava/lang/String;)Ljava/lang/String;
Lorg/apache/http/impl/auth/NTLMEngineImpl;->lmResponse([B [B)[B
Lorg/apache/http/impl/auth/NTLMEngineImpl$CipherGen;->getLanManagerSessionKey()[B
Lorg/apache/http/impl/auth/NTLMEngineImpl;->lmHash(Ljava/lang/String;)[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

低危

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

位置: classes2.dex
cn.com.spdb.mobilebank.per.utils.ai$a;->verify(Ljava.lang.String; Ljavax.net.ssl.SSLSession;)Z
com.lzy.okgo.https.HttpsUtils$2;->verify(Ljava.lang.String; Ljavax.net.ssl.SSLSession;)Z

自定义HostnameVerifier类,却不实现其verify方法验证域名直接返回true,直接接受任意域名。建议:
对SSL证书进行强校验,包括签名CA是否合法、证书是否是自签名、主机域名是否匹配、证书是否过期等。

参考资料:
http://drops.wooyun.org/tips/3296
https://www.91ri.org/12534.html

警告

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

service cn.com.spdb.mobilebank.per.payonline.HceBankService
service com.igexin.sdk.PushService
receiver com.gieseckedevrient.android.pushclient.PushBroadCastReceiver
receiver com.igexin.sdk.PushReceiver

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

警告

检测到2个导出的隐式Service组件。
service cn.com.spdb.mobilebank.per.payonline.HceBankService
service com.igexin.sdk.PushService

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

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

警告

检测1处組件設置了android.intent.category.BROWSABLE属性。
cn.com.spdb.mobilebank.per.activity.SplashActivity


在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

警告

检测到1处IvParameterSpec的使用。

位置: classes2.dex
cn.com.spdb.mobilebank.per.j.h;->(Ljava.lang.String; Ljava.lang.String;)V

使用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

警告

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

警告

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

位置: classes2.dex
cn.com.spdb.mobilebank.per.activity.fingerlogin.a;->b([B)Ljava.security.Key;
com.spdb.invest.util.SPDBEncryptTools;->decryptMenu([B [B)[B
com.spdb.invest.util.SPDBEncryptTools;->decrypt([B [B)[B
cn.com.spdb.mobilebank.per.j.h;->(Ljava.lang.String; Ljava.lang.String;)V
com.spdb.invest.util.SPDBEncryptTools;->encrypt([B [B)[B

参考案例:
http://www.wooyun.org/bugs/wooyun-2010-0105766
http://www.wooyun.org/bugs/wooyun-2015-0162907
http://www.wooyun.org/bugs/wooyun-2010-0187287

参考资料:
http://drops.wooyun.org/tips/15870
https://developer.android.com/training/articles/keystore.html


动态扫描发现风险点

风险等级 风险名称

服务端分析

风险等级 风险名称

警告

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

警告

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

应用证书