挖洞经验 | HackerOne的双因素认证和上报者黑名单绕过漏洞($10,000)
字数 1619 2025-08-18 11:37:45
HackerOne双因素认证与上报者黑名单绕过漏洞分析报告
漏洞概述
本报告详细分析了HackerOne平台上发现的一个授权不当漏洞,该漏洞允许攻击者绕过双因素认证(2FA)机制和上报者黑名单限制。漏洞最初被评级为CVSS 5.0,但在深入分析后发现了更严重的相关问题(CVSS 7.1),最终获得$10,000的漏洞赏金。
漏洞背景
HackerOne是一个知名的漏洞众测平台,为安全研究人员提供报告安全漏洞的渠道。平台提供了"嵌入式漏洞报告样式"(Embedded Submission Form)功能,允许用户:
- 通过嵌入式提交脚本,在不创建HackerOne账号的情况下提交漏洞(需提供邮箱)
- 选择匿名提交漏洞(不计入个人账户)
漏洞详情
漏洞1:双因素认证(2FA)绕过
影响范围:要求2FA的漏洞测试项目
漏洞描述:
某些漏洞测试项目要求提交者在提交漏洞前必须启用双因素认证(2FA)。正常情况下,未启用2FA的用户无法提交漏洞。但通过"嵌入式漏洞报告样式"功能,攻击者可绕过此限制。
复现步骤:
- 登录HackerOne账户并禁用2FA功能
- 访问要求2FA的项目(如Parrot Sec)的标准提交页面,确认无法提交
- 从项目策略中找到Embedded Submission Form的提交链接(格式:
https://hackerone.com/<redacted_UUID>/embedded_submissions/new) - 在登录状态下通过此链接提交漏洞,成功绕过2FA要求
额外影响:
- 绕过漏洞提交频率限制(Report Rate Limit)
- 绕过内部功能滥用限制(Internal Abuse Limit)
漏洞2:上报者黑名单绕过
影响范围:将特定用户加入黑名单的漏洞测试项目
漏洞描述:
项目管理员可将特定研究人员加入黑名单,阻止其提交漏洞。但通过"嵌入式漏洞报告样式"功能,被列入黑名单的用户仍可提交漏洞。
复现步骤:
- 让项目管理员将测试账户加入黑名单
- 确认通过标准提交页面无法提交漏洞
- 使用Embedded Submission Form链接提交漏洞,成功绕过黑名单限制
漏洞原理分析
HackerOne安全团队通过根本原因分析(RCA)发现:
- 漏洞源于
uuid/embedded_submissions调试请求中使用了不安全的检验方法interact_without_authorization - 此方法导致后端访问控制列表(ACL)机制被绕过
- 同一根本原因导致了两个看似独立但实际相关的漏洞
漏洞影响评估
-
对测试厂商的影响:
- 无法有效执行安全策略(如强制2FA)
- 无法有效阻止恶意研究人员(黑名单失效)
- 干扰正常的漏洞处理流程
-
对平台的影响:
- 破坏平台的安全性和可信度
- 可能导致敏感信息泄露(如其他研究人员正在编写的报告附件)
时间线
- 2018.10.04 02:41:19 - 漏洞提交
- 2018.10.05 20:07:59 - HackerOne确认并分类漏洞
- 2018.10.05 20:53:21 - 发放$10,000赏金
- 2018.10.06 00:38:15 - CVSS 7.1高危漏洞修复
- 2018.10.25 23:11:03 - CVSS 5.0漏洞修复
防御建议
-
对平台开发者的建议:
- 对所有提交路径实施一致的授权检查
- 避免使用
interact_without_authorization等不安全方法 - 对嵌入式功能实施与主平台相同的安全控制
-
对测试厂商的建议:
- 了解平台功能的潜在限制
- 监控异常提交行为
- 及时报告可疑的绕过行为
总结
此案例展示了看似简单的功能实现可能带来的重大安全风险。开发者在实现便利功能时,必须确保不降低原有的安全控制级别。同时,此案例也体现了漏洞奖励计划的价值,通过外部研究人员的参与,发现并修复了平台的关键安全问题。