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

5.8 KiB

hop-by-hop headers

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

이것은 https://nathandavison.com/blog/abusing-http-hop-by-hop-request-headers 게시물의 요약입니다.

Hop-by-hop 헤더는 단일 전송 수준 연결에 특정하며, 주로 HTTP/1.1에서 두 노드(클라이언트-프록시 또는 프록시-프록시) 간의 데이터 관리를 위해 사용되며, 전달될 의도가 아닙니다. 표준 hop-by-hop 헤더에는 Keep-Alive, Transfer-Encoding, TE, Connection, Trailer, Upgrade, Proxy-Authorization, 및 Proxy-Authenticate가 포함되며, 이는 RFC 2616에서 정의됩니다. 추가 헤더는 Connection 헤더를 통해 hop-by-hop으로 지정될 수 있습니다.

Hop-by-Hop 헤더 남용

프록시가 hop-by-hop 헤더를 부적절하게 관리하면 보안 문제가 발생할 수 있습니다. 프록시는 이러한 헤더를 제거해야 하지만, 모든 프록시가 그렇게 하지 않기 때문에 잠재적인 취약점이 생길 수 있습니다.

Hop-by-Hop 헤더 처리 테스트

특정 헤더가 hop-by-hop으로 표시될 때 서버 응답의 변화를 관찰하여 hop-by-hop 헤더의 처리를 테스트할 수 있습니다. 도구와 스크립트를 사용하여 이 과정을 자동화하고, 프록시가 이러한 헤더를 어떻게 관리하는지 식별하며, 잘못된 구성이나 프록시 동작을 발견할 수 있습니다.

Hop-by-hop 헤더를 남용하면 다양한 보안 문제를 초래할 수 있습니다. 아래는 이러한 헤더가 잠재적인 공격을 위해 어떻게 조작될 수 있는지를 보여주는 몇 가지 예입니다:

X-Forwarded-For로 보안 제어 우회

공격자는 X-Forwarded-For 헤더를 조작하여 IP 기반 접근 제어를 우회할 수 있습니다. 이 헤더는 종종 프록시가 클라이언트의 원래 IP 주소를 추적하는 데 사용됩니다. 그러나 프록시가 이 헤더를 hop-by-hop으로 처리하고 적절한 검증 없이 전달하면, 공격자는 자신의 IP 주소를 스푸핑할 수 있습니다.

공격 시나리오:

  1. 공격자는 프록시 뒤에 있는 웹 애플리케이션에 HTTP 요청을 보내며, X-Forwarded-For 헤더에 가짜 IP 주소를 포함합니다.
  2. 공격자는 또한 Connection: close, X-Forwarded-For 헤더를 포함하여 프록시가 X-Forwarded-For를 hop-by-hop으로 처리하도록 유도합니다.
  3. 잘못 구성된 프록시는 스푸핑된 X-Forwarded-For 헤더 없이 요청을 웹 애플리케이션에 전달합니다.
  4. 웹 애플리케이션은 원래의 X-Forwarded-For 헤더를 보지 못하므로 요청이 신뢰할 수 있는 프록시에서 직접 온 것으로 간주하여, 무단 접근을 허용할 수 있습니다.

Hop-by-Hop 헤더 주입을 통한 캐시 오염

캐시 서버가 hop-by-hop 헤더를 기반으로 콘텐츠를 잘못 캐시하면, 공격자는 악성 헤더를 주입하여 캐시를 오염시킬 수 있습니다. 이는 동일한 리소스를 요청하는 사용자에게 잘못되거나 악성 콘텐츠를 제공하게 됩니다.

공격 시나리오:

  1. 공격자는 캐시되지 않아야 하는 hop-by-hop 헤더(예: Connection: close, Cookie)가 포함된 요청을 웹 애플리케이션에 보냅니다.
  2. 잘못 구성된 캐시 서버는 hop-by-hop 헤더를 제거하지 않고 공격자의 세션에 특정한 응답을 캐시합니다.
  3. 동일한 리소스를 요청하는 미래의 사용자들은 공격자를 위해 조정된 캐시된 응답을 받게 되어, 세션 하이재킹이나 민감한 정보 노출로 이어질 수 있습니다.

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}