安全分析报告: JuanHand v6.4.2

安全分数


安全分数 43/100

风险评级


等级

  1. A
  2. B
  3. C
  4. F

严重性分布 (%)


隐私风险

6

用户/设备跟踪器


调研结果

高危 4
中危 15
信息 2
安全 1
关注 3

高危 如果一个应用程序使用WebView.loadDataWithBaseURL方法来加载一个网页到WebView,那么这个应用程序可能会遭受跨站脚本攻击

如果一个应用程序使用WebView.loadDataWithBaseURL方法来加载一个网页到WebView,那么这个应用程序可能会遭受跨站脚本攻击
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x05h-Testing-Platform-Interaction.md#static-analysis-7

Files:
com/xinye/xmp/cache/OKHttpManager.java, line(s) 138,11

高危 不安全的Web视图实现。Web视图忽略SSL证书错误并接受任何SSL证书。此应用程序易受MITM攻击

不安全的Web视图实现。Web视图忽略SSL证书错误并接受任何SSL证书。此应用程序易受MITM攻击
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x05g-Testing-Network-Communication.md#webview-server-certificate-verification

Files:
com/xinye/xmp/ui/XMPWebView.java, line(s) 127,135,662,670,745,753,72,125,291,660,743

高危 应用程序包含隐私跟踪程序

此应用程序有多个6隐私跟踪程序。跟踪器可以跟踪设备或用户,是终端用户的隐私问题。

中危 Broadcast Receiver (com.global.loan.receiver.SMSBroadcastReceiver) 受权限保护, 但是应该检查权限的保护级别。

Permission: com.google.android.gms.auth.api.phone.permission.SEND [android:exported=true]
发现一个 Broadcast Receiver被共享给了设备上的其他应用程序,因此让它可以被设备上的任何其他应用程序访问。它受到一个在分析的应用程序中没有定义的权限的保护。因此,应该在定义它的地方检查权限的保护级别。如果它被设置为普通或危险,一个恶意应用程序可以请求并获得这个权限,并与该组件交互。如果它被设置为签名,只有使用相同证书签名的应用程序才能获得这个权限。

中危 Activity (com.sensorsdata.analytics.android.sdk.dialog.SchemeActivity) 未被保护。

[android:exported=true]
发现 Activity与设备上的其他应用程序共享,因此可被设备上的任何其他应用程序访问。

中危 Activity (androidx.compose.ui.tooling.PreviewActivity) 未被保护。

[android:exported=true]
发现 Activity与设备上的其他应用程序共享,因此可被设备上的任何其他应用程序访问。

中危 Service (com.google.android.gms.auth.api.signin.RevocationBoundService) 受权限保护, 但是应该检查权限的保护级别。

Permission: com.google.android.gms.auth.api.signin.permission.REVOCATION_NOTIFICATION [android:exported=true]
发现一个 Service被共享给了设备上的其他应用程序,因此让它可以被设备上的任何其他应用程序访问。它受到一个在分析的应用程序中没有定义的权限的保护。因此,应该在定义它的地方检查权限的保护级别。如果它被设置为普通或危险,一个恶意应用程序可以请求并获得这个权限,并与该组件交互。如果它被设置为签名,只有使用相同证书签名的应用程序才能获得这个权限。

中危 Broadcast Receiver (com.google.firebase.iid.FirebaseInstanceIdReceiver) 受权限保护, 但是应该检查权限的保护级别。

Permission: com.google.android.c2dm.permission.SEND [android:exported=true]
发现一个 Broadcast Receiver被共享给了设备上的其他应用程序,因此让它可以被设备上的任何其他应用程序访问。它受到一个在分析的应用程序中没有定义的权限的保护。因此,应该在定义它的地方检查权限的保护级别。如果它被设置为普通或危险,一个恶意应用程序可以请求并获得这个权限,并与该组件交互。如果它被设置为签名,只有使用相同证书签名的应用程序才能获得这个权限。

中危 Broadcast Receiver (androidx.profileinstaller.ProfileInstallReceiver) 受权限保护, 但是应该检查权限的保护级别。

Permission: android.permission.DUMP [android:exported=true]
发现一个 Broadcast Receiver被共享给了设备上的其他应用程序,因此让它可以被设备上的任何其他应用程序访问。它受到一个在分析的应用程序中没有定义的权限的保护。因此,应该在定义它的地方检查权限的保护级别。如果它被设置为普通或危险,一个恶意应用程序可以请求并获得这个权限,并与该组件交互。如果它被设置为签名,只有使用相同证书签名的应用程序才能获得这个权限。

中危 应用程序可以读取/写入外部存储器,任何应用程序都可以读取写入外部存储器的数据

应用程序可以读取/写入外部存储器,任何应用程序都可以读取写入外部存储器的数据
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x05d-Testing-Data-Storage.md#external-storage

Files:
com/global/loan/util/FileUtils.java, line(s) 79,90
com/module/permission/FileProvider.java, line(s) 149
com/ppdai/sdk/tracker/processor/PhoneStorageDataProcessor.java, line(s) 23,23
com/xinye/xmp/permission/C2.java, line(s) 36

中危 文件可能包含硬编码的敏感信息,如用户名、密码、密钥等

文件可能包含硬编码的敏感信息,如用户名、密码、密钥等
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x05d-Testing-Data-Storage.md#checking-memory-for-sensitive-data-mstg-storage-10

Files:
coil/request/C1li.java, line(s) 365
com/global/loan/dialog/FQuestionnaireDialog.java, line(s) 278
com/ppdai/sdk/tracker/DeviceAssembleHandler.java, line(s) 19
com/ppdai/sdk/tracker/storage/CipherSharedPreferenceWrapper.java, line(s) 26

中危 IP地址泄露

IP地址泄露


Files:
com/snail/antifake/deviceid/IpScanner.java, line(s) 69

中危 应用程序使用不安全的随机数生成器

应用程序使用不安全的随机数生成器
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x04g-Testing-Cryptography.md#weak-random-number-generators

Files:
com/appsflyer/internal/AFb1gSDK.java, line(s) 16
com/global/loan/model/bean/C2.java, line(s) 4
com/global/loan/model/bean/api/BindMobile.java, line(s) 4
com/global/loan/model/bean/api/CanChangeMobile.java, line(s) 6
com/global/loan/model/bean/api/CanModifyKtp.java, line(s) 4
com/global/loan/model/bean/api/CheckAccountActive.java, line(s) 4
com/global/loan/model/bean/api/CheckProdSource.java, line(s) 4
com/global/loan/model/bean/api/CheckinEntrance.java, line(s) 4
com/global/loan/model/bean/api/ClickCheckin.java, line(s) 4
com/global/loan/model/bean/api/Exchange.java, line(s) 5
com/global/loan/model/bean/api/FullMemberMessage.java, line(s) 7
com/global/loan/model/bean/api/GetBnkItemsV2.java, line(s) 6
com/global/loan/model/bean/api/GetRepayChannelList.java, line(s) 9
com/global/loan/model/bean/api/GetWithdrawCode.java, line(s) 6
com/global/loan/model/bean/api/IdValidate.java, line(s) 4
com/global/loan/model/bean/api/IsHaveQuota.java, line(s) 5
com/global/loan/model/bean/api/LiveValidate.java, line(s) 4
com/global/loan/model/bean/api/PrePubList.java, line(s) 5
com/global/loan/model/bean/api/QueryCheckinDetailInfo.java, line(s) 6
com/global/loan/model/bean/api/QueryGoodsList.java, line(s) 6
com/global/loan/model/bean/api/QueryMsgList.java, line(s) 7
com/global/loan/model/bean/api/RewardPointDetail.java, line(s) 6
com/global/loan/model/bean/api/SaveLivenessInfo.java, line(s) 5
com/global/loan/model/bean/api/SurveyQuery.java, line(s) 7
com/ppdai/sdk/tracker/crypto/PPDDataEncrypter.java, line(s) 7

中危 不安全的Web视图实现。可能存在WebView任意代码执行漏洞

不安全的Web视图实现。可能存在WebView任意代码执行漏洞
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x05h-Testing-Platform-Interaction.md#testing-javascript-execution-in-webviews-mstg-platform-5

Files:
com/finv/datacollect/WebDialogFragment.java, line(s) 159,174
com/global/loan/activity/AWeb.java, line(s) 216,348
com/global/loan/fragment/FWeb.java, line(s) 124,185
com/xinye/xmp/ui/XMPWebView.java, line(s) 220,223,224,186,198

中危 可能存在跨域漏洞。在 WebView 中启用从 URL 访问文件可能会泄漏文件系统中的敏感信息

可能存在跨域漏洞。在 WebView 中启用从 URL 访问文件可能会泄漏文件系统中的敏感信息
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x05h-Testing-Platform-Interaction.md#static-analysis-6

Files:
com/finv/datacollect/WebDialogFragment.java, line(s) 180,174

中危 应用程序创建临时文件。敏感信息永远不应该被写进临时文件

应用程序创建临时文件。敏感信息永远不应该被写进临时文件


Files:
com/global/loan/util/FileUtils.java, line(s) 79

中危 MD5是已知存在哈希冲突的弱哈希

MD5是已知存在哈希冲突的弱哈希
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x04g-Testing-Cryptography.md#identifying-insecure-andor-deprecated-cryptographic-algorithms-mstg-crypto-4

Files:
com/ijiami/residconfusion/ConfusionUtils.java, line(s) 267
com/ppdai/sdk/tracker/crypto/MD5.java, line(s) 23,39

中危 此应用可能包含硬编码机密信息

从应用程序中识别出以下机密确保这些不是机密或私人信息
"google_crash_reporting_api_key" : "AIzaSyD0eGSKm33CbcIsfL4NuLCDC4cLQW3ATDQ"
"firebase_database_url" : "https://new-juanhand.firebaseio.com"
"google_app_id" : "1:677860952872:android:ba5177f6d5f342d4655e1d"
"google_api_key" : "AIzaSyD0eGSKm33CbcIsfL4NuLCDC4cLQW3ATDQ"
bc8f6a70d138545889109d126886bd98
8cd0604ba33e2ba7f38a56f0aec08a54
FFE391E0EA186D0734ED601E4E70E3224B7309D48E2075BAC46D8C667EAE7212
6d906db145cb4547aba86ddf75edfcef
37dbd151eb3ca24477bc27cf0febcbe3
3412CD505AAAF5FD80A5DF6890C308BB
889109d126886bd98bc8f6a70d138545
b62f7aea9613b98976498a9ecabe537b
49668163590f816aaf863df014568115
e2380b201325a8f252636350338aeae8
68b1f506b9f9036892dcf6d0fd463c0c0d2aec0d
cb072839e1e240a23baae123ca6cf165
W6VLf6PitAIkKiFuVXBeTe54CSc8jB
FBA3AF4E7757D9016E953FB3EE4671CA2BD9AF725F9A53D52ED4A38EAAA08901
5f389fef5fd41c84a33a91c6574cbf51
3BAF59A2E5331C30675FAB35FF5FFF0D116142D3D4664F1C3CB804068B40614F
809bd36cf78612fd1f11b739c382bfac
a01625815f3428cb69100cc5d613fa7d
b3c61531d3a785d8af140218304940e5b24834d3
E3F9E1E0CF99D0E56A055BA65E241B3399F7CEA524326B0CDD6EC1327ED0FDC1

信息 应用程序记录日志信息,不得记录敏感信息

应用程序记录日志信息,不得记录敏感信息
https://github.com/OWASP/owasp-mstg/blob/master/Document/0x05d-Testing-Data-Storage.md#logs

Files:
com/app/hubert/guide/core/GuideLayout.java, line(s) 123
com/appsflyer/internal/AFa1aSDK.java, line(s) 68
com/appsflyer/internal/AFb1vSDK.java, line(s) 147,427,586,1004,1389,1908,2132,2139,2189
com/appsflyer/internal/AFc1uSDK.java, line(s) 36
com/appsflyer/internal/AFc1vSDK.java, line(s) 70,78
com/appsflyer/internal/AFf1cSDK.java, line(s) 83,92,134
com/appsflyer/internal/AFf1dSDK.java, line(s) 137
com/appsflyer/internal/AFf1hSDK.java, line(s) 167
com/appsflyer/internal/AFf1tSDK.java, line(s) 64,69,94,100
com/appsflyer/internal/AFg1hSDK.java, line(s) 51,97,66,55,61,59
com/appsflyer/internal/AFg1jSDK.java, line(s) 938,985
com/appsflyer/internal/AFg1nSDK.java, line(s) 47
com/appsflyer/share/CrossPromotionHelper.java, line(s) 28
com/appsflyer/share/LinkGenerator.java, line(s) 78,218
com/global/loan/MyApplication$setRxJavaErrHandler$1.java, line(s) 21
com/global/loan/activity/ABase.java, line(s) 200,212,268,274,683,691,695,963
com/global/loan/activity/ABaseInfo.java, line(s) 891
com/global/loan/activity/ACertificationDetail.java, line(s) 129,134,466
com/global/loan/activity/ACodeLogin.java, line(s) 139
com/global/loan/activity/ACreditAmount.java, line(s) 295
com/global/loan/activity/ADebug.java, line(s) 478
com/global/loan/activity/AForget.java, line(s) 225
com/global/loan/activity/AIdInfo.java, line(s) 194,202,452,1138,1180,1565,1570,1571,1584
com/global/loan/activity/AInputPhone.java, line(s) 233
com/global/loan/activity/ALivenessResult$flashUploadData$1.java, line(s) 55
com/global/loan/activity/ALivenessResult.java, line(s) 206
com/global/loan/activity/AMain.java, line(s) 444,524,544,548,565,566
com/global/loan/activity/APasswordLogin.java, line(s) 135
com/global/loan/activity/APersonalInfo.java, line(s) 156
com/global/loan/activity/APublish.java, line(s) 516,522,533
com/global/loan/activity/ARegister.java, line(s) 132,135
com/global/loan/activity/AStartLiveness.java, line(s) 144,198,206,241,266,278,290,424
com/global/loan/activity/ActivityCreditAmountV4.java, line(s) 409
com/global/loan/activity/ActivityFaceResult$flashUploadData$1.java, line(s) 55
com/global/loan/activity/ActivityFaceResult.java, line(s) 197
com/global/loan/activity/ActivityFaceResultV4$flashUploadData$1.java, line(s) 55
com/global/loan/activity/ActivityFaceResultV4.java, line(s) 188
com/global/loan/activity/ActivityFaceStart.java, line(s) 218,228,231,251,304,404
com/global/loan/activity/ActivityFaceStartForOld.java, line(s) 230,248,260,280,443
com/global/loan/activity/ActivityPersonalInfo.java, line(s) 297
com/global/loan/activity/ActivityPersonalInfoForOld.java, line(s) 110
com/global/loan/activity/ActivityPersonalInfoV4.java, line(s) 144,169
com/global/loan/activity/progress/v4/ActivityFaceStartV4.java, line(s) 283,301,313,333,406
com/global/loan/controller/Controller.java, line(s) 712
com/global/loan/dialog/AreaPickerV2Dialog.java, line(s) 140,189,690
com/global/loan/dialog/FAreaPickerDialog.java, line(s) 157,182,206
com/global/loan/fragment/FAccount.java, line(s) 167
com/global/loan/fragment/FArea.java, line(s) 168
com/global/loan/fragment/FCurrentLoan.java, line(s) 124,129,134
com/global/loan/fragment/FMain.java, line(s) 620,625,630,635,640,645,650,656
com/global/loan/model/Model.java, line(s) 213,292,379,474
com/global/loan/model/bean/js/JsBridge.java, line(s) 265,272,279,295,301,308,338,410,437,443,450,478,485,549,582,618,625,632
com/global/loan/service/FirebaseMessaging.java, line(s) 35,41,43,49,68,74,89
com/global/loan/util/C4.java, line(s) 49
com/global/loan/util/C5.java, line(s) 171
com/global/loan/view/CameraSurfaceView.java, line(s) 106,132,133,135,165,166,215,344,349,389,55,178,191
com/global/loan/view/TextViewClickMovement.java, line(s) 51,69
com/makeramen/roundedimageview/RoundedImageView.java, line(s) 126,144
com/ppdai/sdk/tracker/DataTracker.java, line(s) 240
com/ppdai/sdk/tracker/DeviceAssembleHandler.java, line(s) 53,91,109,117,140
com/ppdai/sdk/tracker/DeviceTracker.java, line(s) 167,172,182,244,257,299,160,254,305
com/ppdai/sdk/tracker/PPDTracker.java, line(s) 142,158
com/ppdai/sdk/tracker/processor/CalendarDataProcessor.java, line(s) 83
com/raizlabs/android/dbflow/config/FlowLog.java, line(s) 19,37,25,13,31,43
com/snail/antifake/deviceid/IpScanner.java, line(s) 47,99,77
com/xinye/xmp/cache/OKHttpManager.java, line(s) 91,92,93
com/xinye/xmp/ui/XMPWebView.java, line(s) 120,149,167,655,684,702,738,767,785

信息 应用与Firebase数据库通信

该应用与位于 https://new-juanhand.firebaseio.com 的 Firebase 数据库进行通信

安全 Firebase远程配置已禁用

Firebase远程配置URL ( https://firebaseremoteconfig.googleapis.com/v1/projects/677860952872/namespaces/firebase:fetch?key=AIzaSyD0eGSKm33CbcIsfL4NuLCDC4cLQW3ATDQ ) 已禁用。响应内容如下所示:

{
    "state": "NO_TEMPLATE"
}

关注 应用程序可能与位于OFAC制裁国家 (中国) 的服务器 (bucket-download.slamtec.com) 通信。

{'ip': '119.167.239.41', 'country_short': 'CN', 'country_long': '中国', 'region': '山东', 'city': '青岛', 'latitude': '36.098610', 'longitude': '120.371941'}

关注 应用程序可能与位于OFAC制裁国家 (中国) 的服务器 (api.juanhand.com) 通信。

{'ip': '170.33.12.110', 'country_short': 'HK', 'country_long': '中国', 'region': '香港', 'city': '香港', 'latitude': '22.285521', 'longitude': '114.157692'}

关注 应用程序可能与位于OFAC制裁国家 (中国) 的服务器 (apiuat.juanhand.com) 通信。

{'ip': '170.33.12.110', 'country_short': 'HK', 'country_long': '中国', 'region': '香港', 'city': '香港', 'latitude': '22.285521', 'longitude': '114.157692'}

安全评分: ( JuanHand 6.4.2)