hacktricks/pentesting-web/reset-password.md

137 lines
7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 重置/忘记密码绕过
<details>
<summary><strong>从零开始学习AWS黑客技术成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS红队专家</strong></a><strong></strong></summary>
支持HackTricks的其他方式
* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
</details>
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
加入[**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy)服务器,与经验丰富的黑客和赏金猎人交流!
**黑客见解**\
参与深入探讨黑客的刺激和挑战的内容
**实时黑客新闻**\
通过实时新闻和见解及时了解快节奏的黑客世界
**最新公告**\
通过最新的赏金计划发布和重要平台更新保持信息更新
**加入我们的** [**Discord**](https://discord.com/invite/N3FrSbmwdy) 并开始与顶尖黑客合作!
## **通过引用者泄漏密码重置令牌**
* 如果HTTP referer头部包含在URL中可能会泄漏密码重置令牌。当用户在请求密码重置后点击第三方网站链接时可能会发生这种情况。
* **影响**通过跨站请求伪造CSRF攻击潜在账户接管。
* **参考**
- [HackerOne报告342693](https://hackerone.com/reports/342693)
- [HackerOne报告272379](https://hackerone.com/reports/272379)
- [密码重置令牌泄漏文章](https://medium.com/@rubiojhayz1234/toyotas-password-reset-token-and-email-address-leak-via-referer-header-b0ede6507c6a)
## **密码重置中毒**
* 攻击者可能在密码重置请求期间操纵主机头部,将重置链接指向恶意站点。
* **修补**:使用`$_SERVER['SERVER_NAME']`构建密码重置URL而不是使用`$_SERVER['HTTP_HOST']`。
* **影响**:通过向攻击者泄漏重置令牌导致潜在账户接管。
* **缓解步骤**
- 针对允许域名的白名单验证主机头部。
- 使用安全的服务器端方法生成绝对URL。
* **参考**
- [Acunetix关于密码重置中毒的文章](https://www.acunetix.com/blog/articles/password-reset-poisoning/)
## **通过操纵电子邮件参数重置密码**
* 攻击者可以通过添加额外的电子邮件参数来操纵密码重置请求,以转移重置链接。
* **缓解步骤**
- 适当解析和验证服务器端的电子邮件参数。
- 使用准备好的语句或参数化查询来防止注入攻击。
* **参考**
- [Readme.com账户接管](https://medium.com/@0xankush/readme-com-account-takeover-bugbounty-fulldisclosure-a36ddbe915be)
## **通过API参数修改任何用户的电子邮件和密码**
* 攻击者可以通过修改API请求中的电子邮件和密码参数来更改账户凭据。
* **缓解步骤**
- 确保严格的参数验证和身份验证检查。
- 实施强大的日志记录和监控以检测和应对可疑活动。
* **参考**
- [通过API参数操纵实现完整账户接管](https://medium.com/@adeshkolte/full-account-takeover-changing-email-and-password-of-any-user-through-api-parameters-3d527ab27240)
## **无速率限制:电子邮件轰炸**
* 在密码重置请求上缺乏速率限制可能导致电子邮件轰炸,使用户被大量重置邮件淹没。
* **缓解步骤**
- 基于IP地址或用户账户实施速率限制。
- 使用CAPTCHA挑战来防止自动滥用。
* **参考**
- [HackerOne报告280534](https://hackerone.com/reports/280534)
## **查找密码重置令牌生成方式**
* 了解令牌生成的模式或方法可以帮助预测或暴力破解令牌。
* **缓解步骤**
- 使用强大的加密方法生成令牌。
- 确保足够的随机性和长度以防止可预测性。
* **工具**使用Burp Sequencer分析令牌的随机性。
## **可猜测的GUID**
* 如果GUID例如版本1是可猜测或可预测的攻击者可能会暴力破解它们以生成有效的重置令牌。
* **缓解步骤**
- 使用GUID版本4进行随机化或为其他版本实施额外的安全措施。
* **工具**:使用[guidtool](https://github.com/intruder-io/guidtool)来分析和生成GUID。
## **响应操纵:用好的响应替换坏的响应**
* 操纵HTTP响应以绕过错误消息或限制。
* **缓解步骤**
- 实施服务器端检查以确保响应完整性。
- 使用安全的通信渠道如HTTPS来防止中间人攻击。
* **参考**
- [现场赏金事件中的关键漏洞](https://medium.com/@innocenthacker/how-i-found-the-most-critical-bug-in-live-bug-bounty-event-7a88b3aa97b3)
## **使用过期令牌**
* 测试过期令牌是否仍然可以用于密码重置。
* **缓解步骤**
- 实施严格的令牌过期策略,并在服务器端验证令牌过期。
## **暴力破解密码重置令牌**
* 尝试使用工具如Burpsuite和IP-Rotator暴力破解重置令牌以绕过基于IP的速率限制。
* **缓解步骤**
- 实施强大的速率限制和账户锁定机制。
- 监控可疑活动,表明可能存在暴力破解攻击。
## **尝试使用您的令牌**
* 测试攻击者的重置令牌是否可以与受害者的电子邮件一起使用。
* **缓解步骤**
- 确保令牌绑定到用户会话或其他用户特定属性。
## **注销/密码重置中的会话失效**
* 确保用户注销或重置密码时会话失效。
* **缓解步骤**
- 实施适当的会话管理,确保所有会话在注销或密码重置时失效。
## **注销/密码重置中的会话失效**
* 重置令牌应在一段时间后失效。
* **缓解步骤**
- 为重置令牌设置合理的过期时间,并在服务器端严格执行。
## 参考
* [https://anugrahsr.github.io/posts/10-Password-reset-flaws/#10-try-using-your-token](https://anugrahsr.github.io/posts/10-Password-reset-flaws/#10-try-using-your-token)
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
加入[**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy)服务器,与经验丰富的黑客和赏金猎人交流!
**黑客见解**\
参与深入探讨黑客的刺激和挑战的内容
**实时黑客新闻**\
通过实时新闻和见解及时了解快节奏的黑客世界
**最新公告**\
通过最新的赏金计划发布和重要平台更新保持信息更新
**加入我们的** [**Discord**](https://discord.com/invite/N3FrSbmwdy) 并开始与顶尖黑客合作!