安全分析报告: Lost in The World of Succubi v

安全分数


安全分数 47/100

风险评级


等级

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

严重性分布 (%)


隐私风险

1

用户/设备跟踪器


调研结果

高危 3
中危 23
信息 1
安全 1
关注 0

高危 WebView域控制不严格漏洞

WebView域控制不严格漏洞


Files:
e/a/c/h.java, line(s) 170,164,165,168,169,170,171,172

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

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

Files:
e/a/c/h.java, line(s) 58,7

高危 已启用远程WebView调试

已启用远程WebView调试
https://github.com/MobSF/owasp-mstg/blob/master/Document/0x04c-Tampering-and-Reverse-Engineering.md#debugging-and-tracing

Files:
a/a/u5.java, line(s) 304,12

中危 应用程序存在Janus漏洞

应用程序使用了v1签名方案进行签名,如果只使用v1签名方案,那么它就容易受到安卓5.0-8.0上的Janus漏洞的攻击。在安卓5.0-7.0上运行的使用了v1签名方案的应用程序,以及同时使用了v2/v3签名方案的应用程序也同样存在漏洞。

中危 应用程序可以安装在有漏洞的已更新 Android 版本上

Android 5.1-5.1.1, [minSdk=22]
该应用程序可以安装在具有多个未修复漏洞的旧版本 Android 上。这些设备不会从 Google 接收合理的安全更新。支持 Android 版本 => 10、API 29 以接收合理的安全更新。

中危 应用程序已启用明文网络流量

[android:usesCleartextTraffic=true]
应用程序打算使用明文网络流量,例如明文HTTP,FTP协议,DownloadManager和MediaPlayer。针对API级别27或更低的应用程序,默认值为“true”。针对API级别28或更高的应用程序,默认值为“false”。避免使用明文流量的主要原因是缺乏机密性,真实性和防篡改保护;网络攻击者可以窃听传输的数据,并且可以在不被检测到的情况下修改它。

中危 应用程序数据可以被备份

[android:allowBackup=true]
这个标志允许任何人通过adb备份你的应用程序数据。它允许已经启用了USB调试的用户从设备上复制应用程序数据。

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

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

中危 Activity (com.onesignal.NotificationOpenedActivityHMS) 未被保护。

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

中危 Broadcast Receiver (com.onesignal.NotificationDismissReceiver) 未被保护。

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

中危 Broadcast Receiver (com.onesignal.BootUpReceiver) 未被保护。

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

中危 Broadcast Receiver (com.onesignal.UpgradeReceiver) 未被保护。

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

中危 Activity (com.onesignal.NotificationOpenedReceiver) 未被保护。

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

中危 Activity (com.onesignal.NotificationOpenedReceiverAndroid22AndOlder) 未被保护。

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

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

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

中危 Service (androidx.work.impl.background.systemjob.SystemJobService) 受权限保护, 但是应该检查权限的保护级别。

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

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

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

中危 高优先级的Intent (999)

[android:priority]
通过设置一个比另一个Intent更高的优先级,应用程序有效地覆盖了其他请求。

中危 应用程序使用SQLite数据库并执行原始SQL查询。原始SQL查询中不受信任的用户输入可能会导致SQL注入。敏感信息也应加密并写入数据库

应用程序使用SQLite数据库并执行原始SQL查询。原始SQL查询中不受信任的用户输入可能会导致SQL注入。敏感信息也应加密并写入数据库
https://github.com/MobSF/owasp-mstg/blob/master/Document/0x04h-Testing-Code-Quality.md#injection-flaws-mstg-arch-2-and-mstg-platform-2

Files:
a/a/d4.java, line(s) 8,9,10,11,12,255
a/c/a/a/j/s/i/q.java, line(s) 10,11,164
a/c/a/a/j/s/i/s.java, line(s) 4,5,88
c/m/e.java, line(s) 5,342
c/n/a/f/c.java, line(s) 6,7,8,231

中危 SHA-1是已知存在哈希冲突的弱哈希

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

Files:
a/c/c/s/q/b.java, line(s) 56
a/c/c/s/r/c.java, line(s) 162
a/c/c/u/z.java, line(s) 122
g/a/b/g0/f/g.java, line(s) 11

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

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

Files:
a/c/a/b/d/l/n.java, line(s) 67
e/a/c/b.java, line(s) 4
e/a/c/i.java, line(s) 8

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

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

Files:
a/a/u5.java, line(s) 312,311

中危 IP地址泄露

IP地址泄露


Files:
g/a/b/d0/j/b.java, line(s) 10
g/a/b/g0/f/j.java, line(s) 54,71,72,85

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

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


Files:
a/c/c/s/q/c.java, line(s) 47
c/m/j.java, line(s) 39

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

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

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

从应用程序中识别出以下机密确保这些不是机密或私人信息
c682b8144a8dd52bc1ad63
c103703e120ae8cc73c9248622f3cd1e
af63b434-ec50-46a0-9374-d57a383f2e03

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

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

Files:
a/a/c6/c.java, line(s) 52
a/a/t3.java, line(s) 1034,1040,1054,1036,1032,1038
a/b/a/a/a.java, line(s) 51
a/c/a/a/i/b.java, line(s) 216
a/c/a/a/j/q/k.java, line(s) 36,39,43,47,79,82,85,88,91
a/c/a/b/c/a.java, line(s) 50,70,87,59
a/c/a/b/c/c.java, line(s) 94,109,89,108,116,145,171
a/c/a/b/c/d.java, line(s) 41,61,87,39,60,86,57,74,103
a/c/a/b/c/f.java, line(s) 10,9,9
a/c/a/b/c/k.java, line(s) 55,50,42
a/c/a/b/c/o.java, line(s) 33,72,29,70,85,103,127,157,188,86,104,128,158,189,41
a/c/a/b/c/p.java, line(s) 21
a/c/a/b/c/r.java, line(s) 30,44,22,36
a/c/a/b/c/u.java, line(s) 40,35
a/c/a/b/c/v.java, line(s) 28,48
a/c/a/b/d/b0.java, line(s) 24
a/c/a/b/d/d.java, line(s) 58,63,177
a/c/a/b/d/g.java, line(s) 38,47,79,91,96,100,112,120,135
a/c/a/b/d/h.java, line(s) 26
a/c/a/b/d/k/k/b0.java, line(s) 27
a/c/a/b/d/k/k/e2.java, line(s) 88,180
a/c/a/b/d/k/k/f.java, line(s) 245,427
a/c/a/b/d/k/k/f0.java, line(s) 280,262,267,272,309,310
a/c/a/b/d/k/k/i0.java, line(s) 31
a/c/a/b/d/k/k/k0.java, line(s) 80
a/c/a/b/d/k/k/l1.java, line(s) 39,45
a/c/a/b/d/k/k/n0.java, line(s) 24
a/c/a/b/d/k/k/w0.java, line(s) 151,413
a/c/a/b/d/k/k/y0.java, line(s) 36
a/c/a/b/d/l/a1.java, line(s) 48,54
a/c/a/b/d/l/b.java, line(s) 20
a/c/a/b/d/l/b1.java, line(s) 44
a/c/a/b/d/l/c.java, line(s) 179,207,297,301,306,314
a/c/a/b/d/l/d0.java, line(s) 42,64
a/c/a/b/d/l/l0.java, line(s) 20
a/c/a/b/d/l/n.java, line(s) 172,173,174,199,200,201,982,993,1378,975,960,968,990
a/c/a/b/d/l/p0.java, line(s) 102,121
a/c/a/b/d/l/t0.java, line(s) 32,48
a/c/a/b/d/l/x.java, line(s) 32,35,38,41,44,47,58,61,64,67,151,156
a/c/a/b/d/l/z.java, line(s) 15
a/c/a/b/d/n/a.java, line(s) 69,78
a/c/a/b/d/o/d.java, line(s) 56,63,79,89
a/c/a/b/d/q.java, line(s) 28
a/c/a/b/d/x.java, line(s) 59
a/c/a/b/g/b/a.java, line(s) 55,78,82,100
a/c/a/b/h/a.java, line(s) 66,69,162,193,78,86,101
a/c/c/g.java, line(s) 89,276,292,147,150,154,158
a/c/c/k/o.java, line(s) 24
a/c/c/k/r.java, line(s) 74
a/c/c/s/f.java, line(s) 32,48,56,79
a/c/c/s/g.java, line(s) 256,424
a/c/c/s/q/b.java, line(s) 49,60
a/c/c/s/r/c.java, line(s) 152,173,79,84
a/c/c/u/a.java, line(s) 810,1136,1145,72,145,229,264,495,702,805
a/c/c/u/b0.java, line(s) 22
a/c/c/u/c.java, line(s) 156,80,155,168,70,143,149,151
a/c/c/u/d0.java, line(s) 71,59,90
a/c/c/u/e0.java, line(s) 46,66,87,114
a/c/c/u/g.java, line(s) 93,92
a/c/c/u/j0.java, line(s) 33,43,32,42
a/c/c/u/l0.java, line(s) 29
a/c/c/u/m.java, line(s) 32,42,114,156,165,144,146,168,174,177,31,41,113,150,55
a/c/c/u/m0.java, line(s) 80,72,78,35,49
a/c/c/u/n.java, line(s) 29,43,28,42,40
a/c/c/u/n0.java, line(s) 34,44,82,78,141,65,65,81,95,101
a/c/c/u/o0.java, line(s) 18
a/c/c/u/r0.java, line(s) 154,163,173,179,189,87,87
a/c/c/u/s0.java, line(s) 34,47,97,170,66,66,90,142,151,164,176,185
a/c/c/u/w0.java, line(s) 21,20
a/c/c/u/z.java, line(s) 231,135,226,77,132,165
a/c/c/u/z0.java, line(s) 51,55,60,76,99,118,84,89,105,50,54,59,71,96,115
a/d/a/a/a.java, line(s) 25,51,81
a/d/a/c/b.java, line(s) 7
b/a/b/b/a.java, line(s) 1687,1714,240,766,775,787,820,1221,1765,1781,1795,1807,1899,469,1096,1106,1176,1185,1828,1837,1867,1876,572,316
c/a/k/h.java, line(s) 225
c/a/k/k.java, line(s) 660,685,694,704,713,728,737,750,759,815,858,861,1102,1116,1084
c/a/k/t.java, line(s) 31,70
c/a/l/a/a.java, line(s) 65
c/a/n/f.java, line(s) 117,156,170,178,338
c/a/n/i/e.java, line(s) 509
c/a/n/i/h.java, line(s) 530
c/a/o/b1.java, line(s) 20,30,47,49,51
c/a/o/i0.java, line(s) 307,152,157,162,224,294
c/a/o/j.java, line(s) 147,43,58,80,435
c/a/o/k0.java, line(s) 102
c/a/o/o0.java, line(s) 91,242,356,170,175,224,324,335,365,378,392
c/a/o/w.java, line(s) 317
c/a/o/x0.java, line(s) 368,401
c/a/o/y0.java, line(s) 84,150
c/a/o/z.java, line(s) 148,157,182
c/f/e/n.java, line(s) 115,143,151,188,269,281,303,311,109,142,148,187,268,278,302,310,130,156,182,258
c/f/f/b/h.java, line(s) 140,183,202,210
c/f/g/c.java, line(s) 38,43
c/f/g/d.java, line(s) 52
c/f/g/e.java, line(s) 51
c/f/g/f.java, line(s) 38
c/f/g/g.java, line(s) 50,215
c/f/g/k/d.java, line(s) 29,52
c/f/l/b.java, line(s) 21
c/f/m/a.java, line(s) 208
c/f/m/b.java, line(s) 34
c/f/m/p.java, line(s) 14
c/f/m/u.java, line(s) 106,126,477,487,498,507,38,116
c/g/a/b.java, line(s) 32
c/h/b/a.java, line(s) 262
c/i/a/f.java, line(s) 160,165,219,338,340
c/i/a/k.java, line(s) 261,264,2802,2803,2810,2816,1874,2178
c/j/a/a.java, line(s) 25
c/m/e.java, line(s) 93,100,306,431
c/m/f.java, line(s) 101,133
c/m/g.java, line(s) 73
c/m/j.java, line(s) 136,139,145
c/n/a/c.java, line(s) 21,25
c/n/a/f/c.java, line(s) 51,235
c/p/a/a/f.java, line(s) 175,178
c/r/f.java, line(s) 135,141,150,155,165,184,188,195,229,234,243,249,255,265,271
c/r/n.java, line(s) 18,20,29,31,40,42,51,53
c/r/z/a.java, line(s) 22,28,34
com/onesignal/JobIntentService.java, line(s) 208,210,247
e/a/c/e.java, line(s) 13
e/a/c/g.java, line(s) 31,38,96
e/a/c/h.java, line(s) 46,48,61

安全 此应用程序使用SSL Pinning 来检测或防止安全通信通道中的MITM攻击

此应用程序使用SSL Pinning 来检测或防止安全通信通道中的MITM攻击
https://github.com/MobSF/owasp-mstg/blob/master/Document/0x05g-Testing-Network-Communication.md#testing-custom-certificate-stores-and-certificate-pinning-mstg-network-4

Files:
g/a/b/d0/m/d.java, line(s) 47,43,45,45

安全评分: ( Lost in The World of Succubi )