CWE-307:对过度认证尝试的限制不当 严重程度
CVSS v3.1:8.1(高危)
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
该评分反映了在测试受影响认证流程期间观察到的影响。
Owncloud 版本 10.16.3
受影响的 WebDAV 端点通过 HTTP Authorization: Basic 头接受认证凭据。
示例请求:
GET /remote.php/webdav/ HTTP/1.1 Host: target.example Authorization: Basic <BASE64(username:password)>
Base64 值表示:
username:password
针对同一账户的重复认证失败不会触发预期的暴力破解防护机制。
在测试期间,提交了多次连续的无效认证尝试,但未观察到:
速率限制
渐进式认证延迟
临时账户锁定
HTTP 429 Too Many Requests
随后使用有效凭据的认证尝试仍被接受。
步骤 1 — 访问 WebDAV 认证流程
登录 ownCloud 并获取对使用受影响 WebDAV 认证流程的私有文档/共享的访问权限。
访问受影响端点时,服务器会返回 HTTP Basic Authentication 质询。
步骤 2 — 观察认证请求
凭据通过 HTTP Authorization 头传输:
Authorization: Basic <BASE64(username:password)>
步骤 3 — 执行重复认证尝试
使用受控测试账户,反复提交包含错误密码的认证请求。
示例测试凭据:
testuser:incorrect-password-01 testuser:incorrect-password-02 testuser:incorrect-password-03 ...
可使用 Burp Suite Intruder 或其他 HTTP 测试工具复现这些请求。
步骤 4 — 观察服务器行为
在多次连续认证失败后,服务器仍继续接受认证请求,未实施有效的暴力破解防护机制。
未观察到临时锁定、渐进式延迟、速率限制或 HTTP 429 Too Many Requests 响应。
步骤 5 — 验证成功认证
随后使用正确凭据的请求被正常接受。
这表明重复认证失败并未充分限制通过受影响 WebDAV 认证机制进行的后续密码猜测尝试。
本研究中附带了一段简短的 PoC 视频,演示了完整的测试过程。
能够访问受影响 WebDAV 认证端点的攻击者可以针对用户账户反复尝试密码,而不会遇到有效的应用层暴力破解防护。
成功猜测密码可能导致未经授权访问目标 ownCloud 账户及其关联资源,具体取决于该账户的权限和许可。
因此,该漏洞提高了针对通过受影响认证流程暴露的账户进行在线密码猜测攻击的可行性。
类似问题此前已在相关的 Nextcloud 产品中报告,并被分配:
CVE-2023-32319
参考:
HackerOne Report #1879549
提供此参考仅用于比较认证暴力破解防护问题,并不意味着这两个漏洞完全相同。
WebDAV 认证流程应与应用程序现有的暴力破解防护机制集成。
建议的控制措施包括:
跟踪每个账户和/或来源的失败认证尝试。
在重复认证失败后应用渐进式延迟。
强制执行可配置的最大连续失败尝试次数。
达到配置阈值后,临时拒绝进一步的认证尝试。
当触发速率限制时,返回 HTTP 429 Too Many Requests。
在所有身份验证机制中一致地应用此保护,包括 WebDAV 使用的 HTTP Basic Authentication。
确保无法使用替代的身份验证机制或端点来绕过应用程序现有的暴力破解防护。
一种可能的策略是在可配置的连续失败次数(例如 10 次尝试)后临时限制身份验证。确切的阈值和限制时长应根据应用程序的安全要求确定。
ownCloud Server:https://github.com/owncloud/core
相关漏洞:CVE-2023-32319
HackerOne 报告 #1879549:https://hackerone.com/reports/1879549
Hoang126,代表 ETC JSC 安全团队
安全研究与负责任披露。
本研究出于安全测试和负责任披露的目的而进行。
测试是在受控环境中进行的。未对第三方账户或数据进行未经授权的访问。