我是如何通过一次偷偷摸摸的标头注入劫持密码重置链接的

admin 2025年5月15日10:54:54评论2 views字数 1110阅读3分42秒阅读模式

值此机会,请允许我分享我的一个 Critical vulnerability 发现。事不宜迟,让我们直接进入讨论。

我是如何通过一次偷偷摸摸的标头注入劫持密码重置链接的我是如何通过一次偷偷摸摸的标头注入劫持密码重置链接的

有时,最小的疏忽可能会导致一些最危险的漏洞。在这篇文章中,我将向您介绍我如何通过调整标头来劫持密码重置令牌。是的,你没看错 — 不需要花哨的开发,只需要一个位置合适的 .Origin?

🔍 发现

我正在浏览托管在 的 Web 应用程序上的密码重置功能。在我捕获重置密码的请求之前,看起来没有什么异常:api.app.redacted.com

POST /v1/public/rpc/auth.password_reset.request HTTP/2
Content-Type: application/json
Origin: https://app.redacted.com

大多数开发人员有点太信任标头了。这就是乐趣开始的地方。Origin

🧨 漏洞利用

这是我所做的:

  1. 我点击“忘记密码”并输入受害者的电子邮件。
  2. 我拦截了传出的 POST 请求以:
/v1/public/rpc/auth.password_reset.request

3. 我将标题更改为:Origin

https://attacker.com?.redacted.com
我是如何通过一次偷偷摸摸的标头注入劫持密码重置链接的我是如何通过一次偷偷摸摸的标头注入劫持密码重置链接的

为什么这样做:许多系统只检查源是否以 .但是,如果你放入 ,该检查会正常失败,并将其视为合法的子域。redacted.com?

4. 服务器响应 。200 OK

5. 密码重置邮件已发送给受害者,但重置链接?它指向我的服务器 — — 随身携带着 Juicy Token。https://attacker.com

我是如何通过一次偷偷摸摸的标头注入劫持密码重置链接的我是如何通过一次偷偷摸摸的标头注入劫持密码重置链接的

6. 一旦受害者点击它,我在我的听众上收到了重置令牌,然后 BOOM !!— 完全接管帐户,而无需触及他们的收件箱。

我是如何通过一次偷偷摸摸的标头注入劫持密码重置链接的我是如何通过一次偷偷摸摸的标头注入劫持密码重置链接的

⚠️ 冲击

这个漏洞使我能够:

  • 劫持密码重置流。
  • 获得对任何账户的完全访问权限,而不会触发警报。
  • 提供看起来合法的链接(因为从技术上讲它们是合法的),但被重定向到我的恶意服务器。

📊 风险分析 (CVSS v3.1)

指标值基本分数 9.0(严重)

🛡️ 缓解提示

解决这个问题非常简单。开发人员应该:

  • 使用 或 代替 。$_SERVER['SERVER_NAME']$_SERVER['HTTP_HOST']Origin
  • 为有效的重定向域实施严格的允许列表。
  • 避免将用户控制的输入反映到敏感的响应机制(如密码重置链接)中。

💬 最后的思考

这个错误表明,有时最薄弱的链接隐藏在众目睽睽之下——比如一个放错位置的标题。我们越是假设“无害”,就越有可能招致巧妙的滥用。

与往常一样,我们进行了负责任的披露,并且问题已经得到解决。感谢开发团队的快速响应!

祝您黑客愉快🧑 💻,注意安全!

原文始发于微信公众号(安全狗的自我修养):我是如何通过一次偷偷摸摸的标头注入劫持密码重置链接的

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年5月15日10:54:54
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   我是如何通过一次偷偷摸摸的标头注入劫持密码重置链接的http://cn-sec.com/archives/4057242.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息