hop-by-hop headers
Last updated
Last updated
学习和实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习和实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)
RootedCON 是 西班牙 最相关的网络安全事件,也是 欧洲 最重要的事件之一。该大会 旨在促进技术知识,是各个学科技术和网络安全专业人士的热烈交流平台。
这是文章的摘要 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 中所定义。可以通过 Connection
header 将其他 headers 指定为 hop-by-hop。
代理对 hop-by-hop headers 的不当管理可能导致安全问题。虽然代理应该删除这些 headers,但并非所有代理都这样做,从而产生潜在的漏洞。
可以通过观察在特定 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 地址。
攻击场景:
攻击者向位于代理后面的 web 应用程序发送 HTTP 请求,在 X-Forwarded-For
header 中包含一个虚假的 IP 地址。
攻击者还包括 Connection: close, X-Forwarded-For
header,促使代理将 X-Forwarded-For
视为 hop-by-hop。
配置错误的代理将请求转发到 web 应用程序,而没有伪造的 X-Forwarded-For
header。
web 应用程序没有看到原始的 X-Forwarded-For
header,可能会将请求视为直接来自受信任的代理,从而可能允许未授权访问。
如果缓存服务器错误地根据 hop-by-hop headers 缓存内容,攻击者可以注入恶意 headers 来毒化缓存。这将向请求相同资源的用户提供不正确或恶意的内容。
攻击场景:
攻击者向 web 应用程序发送请求,包含一个不应被缓存的 hop-by-hop header(例如,Connection: close, Cookie
)。
配置不当的缓存服务器未能删除 hop-by-hop header,并缓存了特定于攻击者会话的响应。
未来请求相同资源的用户接收到缓存的响应,该响应是为攻击者量身定制的,可能导致会话劫持或敏感信息泄露。
RootedCON 是 西班牙 最相关的网络安全事件,也是 欧洲 最重要的事件之一。该大会 旨在促进技术知识,是各个学科技术和网络安全专业人士的热烈交流平台。
学习和实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习和实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)