hop-by-hop headers

htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!

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

호프-바이-호프 헤더는 단일 전송 수준 연결에 특정한 헤더로, 주로 HTTP/1.1에서 두 노드 간의 데이터를 관리하는 데 사용됩니다(예: 클라이언트-프록시 또는 프록시-프록시). 이러한 헤더는 전달되지 않도록 설계되었습니다. 표준 호프-바이-호프 헤더에는 Keep-Alive, Transfer-Encoding, TE, Connection, Trailer, Upgrade, Proxy-Authorization, Proxy-Authenticate가 포함되어 있으며, RFC 2616에서 정의되어 있습니다. 추가적인 헤더는 Connection 헤더를 통해 호프-바이-호프로 지정될 수 있습니다.

호프-바이-호프 헤더 남용

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

호프-바이-호프 헤더 처리 테스트

호프-바이-호프 헤더의 처리는 특정 헤더가 호프-바이-호프로 표시될 때 서버 응답의 변경을 관찰하여 테스트할 수 있습니다. 도구와 스크립트를 사용하여 이 프로세스를 자동화하면 프록시가 이러한 헤더를 어떻게 처리하는지 확인하고 잘못된 구성 또는 프록시 동작을 발견할 수 있습니다.

호프-바이-호프 헤더의 남용은 다양한 보안 문제로 이어질 수 있습니다. 아래는 이러한 헤더가 잠재적인 공격을 위해 조작될 수 있는 몇 가지 예시입니다:

X-Forwarded-For를 사용하여 보안 제어 우회

공격자는 X-Forwarded-For 헤더를 조작하여 IP 기반 액세스 제어를 우회할 수 있습니다. 이 헤더는 프록시가 클라이언트의 원래 IP 주소를 추적하는 데 자주 사용됩니다. 그러나 프록시가 이 헤더를 호프-바이-호프로 처리하고 적절한 유효성 검사 없이 전달하는 경우, 공격자는 자신의 IP 주소를 위조할 수 있습니다.

공격 시나리오:

  1. 공격자는 X-Forwarded-For 헤더에 가짜 IP 주소를 포함한 HTTP 요청을 프록시 뒤의 웹 애플리케이션에 보냅니다.

  2. 공격자는 Connection: close, X-Forwarded-For 헤더도 포함하여 프록시가 X-Forwarded-For를 호프-바이-호프로 처리하도록 유도합니다.

  3. 잘못 구성된 프록시는 위조된 X-Forwarded-For 헤더 없이 요청을 웹 애플리케이션으로 전달합니다.

  4. 웹 애플리케이션은 원래의 X-Forwarded-For 헤더를 보지 못하므로 요청을 신뢰할 수 있는 프록시에서 직접 온 것으로 간주하여 무단 액세스를 허용할 수 있습니다.

호프-바이-호프 헤더 삽입을 통한 캐시 독점

캐시 서버가 호프-바이-호프 헤더를 기반으로 잘못된 캐시를 생성하는 경우, 공격자는 악성 헤더를 삽입하여 캐시를 독점할 수 있습니다. 이로 인해 동일한 리소스를 요청하는 사용자에게 잘못된 또는 악성 콘텐츠가 제공됩니다.

공격 시나리오:

  1. 공격자는 캐시되지 않아야 할 호프-바이-호프 헤더(Connection: close, Cookie 등)를 포함한 웹 애플리케이션에 요청을 보냅니다.

  2. 잘못 구성된 캐시 서버는 호프-바이-호프 헤더를 제거하지 않고, 공격자의 세션에 특정한 응답을 캐시합니다.

  3. 동일한 리소스를 요청하는 다른 사용자는 공격자를 위해 조작된 캐시 응답을 받게 되며, 이는 세션 하이재킹이나 민감한 정보 노출로 이어질 수 있습니다.

htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!

Last updated