hacktricks/src/pentesting-web/abusing-hop-by-hop-headers.md

43 lines
3.0 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.

# hop-by-hop headers
{{#include ../banners/hacktricks-training.md}}
---
**这是文章的摘要** [**https://nathandavison.com/blog/abusing-http-hop-by-hop-request-headers**](https://nathandavison.com/blog/abusing-http-hop-by-hop-request-headers)
Hop-by-hop headers 是特定于单个传输级连接的,主要用于 HTTP/1.1 中管理两个节点(如客户端-代理或代理-代理)之间的数据,并不打算被转发。标准的 hop-by-hop headers 包括 `Keep-Alive``Transfer-Encoding``TE``Connection``Trailer``Upgrade``Proxy-Authorization``Proxy-Authenticate`,如 [RFC 2616](https://tools.ietf.org/html/rfc2616#section-13.5.1) 中所定义。可以通过 `Connection` header 将其他 headers 指定为 hop-by-hop。
### 滥用 Hop-by-Hop Headers
代理对 hop-by-hop headers 的不当管理可能导致安全问题。虽然代理应该删除这些 headers但并非所有代理都这样做从而产生潜在的漏洞。
### 测试 Hop-by-Hop Header 处理
可以通过观察在特定 headers 被标记为 hop-by-hop 时服务器响应的变化来测试 hop-by-hop headers 的处理。工具和脚本可以自动化此过程,识别代理如何管理这些 headers并可能揭示配置错误或代理行为。
滥用 hop-by-hop headers 可能导致各种安全隐患。以下是几个示例,演示如何操纵这些 headers 进行潜在攻击:
### 通过 `X-Forwarded-For` 绕过安全控制
攻击者可以操纵 `X-Forwarded-For` header 以绕过基于 IP 的访问控制。此 header 通常由代理用于跟踪客户端的源 IP 地址。然而,如果代理将此 header 视为 hop-by-hop 并在没有适当验证的情况下转发,攻击者可以伪造其 IP 地址。
**攻击场景:**
1. 攻击者向位于代理后面的 web 应用程序发送 HTTP 请求,在 `X-Forwarded-For` header 中包含一个虚假的 IP 地址。
2. 攻击者还包括 `Connection: close, X-Forwarded-For` header促使代理将 `X-Forwarded-For` 视为 hop-by-hop。
3. 配置错误的代理将请求转发到 web 应用程序,而没有伪造的 `X-Forwarded-For` header。
4. web 应用程序没有看到原始的 `X-Forwarded-For` header可能会将请求视为直接来自受信任的代理从而可能允许未经授权的访问。
### 通过 Hop-by-Hop Header 注入进行缓存中毒
如果缓存服务器错误地根据 hop-by-hop headers 缓存内容,攻击者可以注入恶意 headers 来毒化缓存。这将向请求相同资源的用户提供不正确或恶意的内容。
**攻击场景:**
1. 攻击者向 web 应用程序发送请求,包含一个不应被缓存的 hop-by-hop header例如`Connection: close, Cookie`)。
2. 配置不当的缓存服务器未能删除 hop-by-hop header并缓存了特定于攻击者会话的响应。
3. 未来请求相同资源的用户收到缓存的响应,该响应是为攻击者量身定制的,可能导致会话劫持或敏感信息泄露。
{{#include ../banners/hacktricks-training.md}}