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

5 KiB
Raw Blame History

hop-by-hop headers

从零开始学习AWS黑客技术成为专家 htARTEHackTricks AWS红队专家

这是一篇关于https://nathandavison.com/blog/abusing-http-hop-by-hop-request-headers的文章摘要

跳跃头部是特定于单个传输级连接的头部在HTTP/1.1中主要用于在两个节点之间(如客户端-代理或代理-代理)管理数据,并且不应转发。标准的跳跃头部包括Keep-AliveTransfer-EncodingTEConnectionTrailerUpgradeProxy-AuthorizationProxy-Authenticate,如RFC 2616中定义。通过Connection头部,可以将其他头部指定为跳跃头部。

滥用跳跃头部

代理不正确处理跳跃头部可能导致安全问题。虽然预期代理会删除这些头部,但并非所有代理都会这样做,从而产生潜在的漏洞。

测试跳跃头部处理

可以通过观察服务器响应的变化来测试跳跃头部的处理,当特定头部被标记为跳跃头部时。工具和脚本可以自动化此过程,识别代理如何管理这些头部,并可能发现配置错误或代理行为。

滥用跳跃头部可能导致各种安全问题。以下是一些示例,演示了如何操纵这些头部进行潜在攻击:

使用X-Forwarded-For绕过安全控制

攻击者可以操纵X-Forwarded-For头部来绕过基于IP的访问控制。此头部通常由代理使用来跟踪客户端的原始IP地址。但是如果代理将此头部视为跳跃头部并在没有适当验证的情况下转发它攻击者可以伪造其IP地址。

攻击场景:

  1. 攻击者向代理后面的Web应用程序发送HTTP请求包括在X-Forwarded-For头部中放入虚假IP地址。
  2. 攻击者还包括Connection: close, X-Forwarded-For头部,促使代理将X-Forwarded-For视为跳跃头部。
  3. 配置不正确的代理将请求转发给Web应用程序而不包含伪造的X-Forwarded-For头部。
  4. Web应用程序看不到原始的X-Forwarded-For头部,可能将请求视为直接来自受信任代理,从而可能允许未经授权的访问。

通过跳跃头部注入进行缓存投毒

如果缓存服务器根据跳跃头部不正确地缓存内容,攻击者可以注入恶意头部来投毒缓存。这将向请求相同资源的用户提供不正确或恶意内容。

攻击场景:

  1. 攻击者发送带有不应缓存的跳跃头部的请求到Web应用程序例如Connection: close, Cookie)。
  2. 配置不良的缓存服务器不会删除跳跃头部,并缓存特定于攻击者会话的响应。
  3. 请求相同资源的未来用户接收到缓存响应,该响应是为攻击者定制的,可能导致会话劫持或敏感信息泄露。
从零开始学习AWS黑客技术成为专家 htARTEHackTricks AWS红队专家