hacktricks/pentesting-web/abusing-hop-by-hop-headers.md
2024-02-10 15:36:32 +00:00

6.2 KiB

Hop-by-Hop-Header

Lernen Sie das Hacken von AWS von Null bis zum Experten mit htARTE (HackTricks AWS Red Team Expert)!

Dies ist eine Zusammenfassung des Beitrags https://nathandavison.com/blog/abusing-http-hop-by-hop-request-headers

Hop-by-Hop-Header sind spezifisch für eine einzelne Transportverbindung und werden hauptsächlich in HTTP/1.1 verwendet, um Daten zwischen zwei Knoten (wie Client-Proxy oder Proxy-Proxy) zu verwalten und sind nicht zur Weiterleitung bestimmt. Standardmäßige Hop-by-Hop-Header umfassen Keep-Alive, Transfer-Encoding, TE, Connection, Trailer, Upgrade, Proxy-Authorization und Proxy-Authenticate, wie in RFC 2616 definiert. Zusätzliche Header können über den Connection-Header als Hop-by-Hop gekennzeichnet werden.

Missbrauch von Hop-by-Hop-Headern

Eine unsachgemäße Verwaltung von Hop-by-Hop-Headern durch Proxies kann zu Sicherheitsproblemen führen. Obwohl erwartet wird, dass Proxies diese Header entfernen, tun dies nicht alle, was potenzielle Sicherheitslücken schafft.

Testen der Behandlung von Hop-by-Hop-Headern

Die Behandlung von Hop-by-Hop-Headern kann getestet werden, indem Änderungen in den Serverantworten beobachtet werden, wenn bestimmte Header als Hop-by-Hop markiert sind. Tools und Skripte können diesen Prozess automatisieren, um herauszufinden, wie Proxies diese Header verwalten und möglicherweise Fehlkonfigurationen oder Proxy-Verhaltensweisen aufzudecken.

Der Missbrauch von Hop-by-Hop-Headern kann zu verschiedenen Sicherheitsimplikationen führen. Im Folgenden sind ein paar Beispiele aufgeführt, die zeigen, wie diese Header für potenzielle Angriffe manipuliert werden können:

Umgehung von Sicherheitskontrollen mit X-Forwarded-For

Ein Angreifer kann den X-Forwarded-For-Header manipulieren, um IP-basierte Zugriffskontrollen zu umgehen. Dieser Header wird oft von Proxies verwendet, um die ursprüngliche IP-Adresse eines Clients zu verfolgen. Wenn ein Proxy diesen Header jedoch als Hop-by-Hop behandelt und ohne ordnungsgemäße Validierung weiterleitet, kann ein Angreifer seine IP-Adresse fälschen.

Angriffsszenario:

  1. Der Angreifer sendet eine HTTP-Anfrage an eine Webanwendung hinter einem Proxy und fügt eine gefälschte IP-Adresse im X-Forwarded-For-Header ein.
  2. Der Angreifer fügt auch den Header Connection: close, X-Forwarded-For hinzu, um den Proxy dazu zu bringen, X-Forwarded-For als Hop-by-Hop zu behandeln.
  3. Der fehlerhaft konfigurierte Proxy leitet die Anfrage an die Webanwendung weiter, ohne den gefälschten X-Forwarded-For-Header.
  4. Die Webanwendung erkennt den ursprünglichen X-Forwarded-For-Header nicht und könnte die Anfrage als direkt von einem vertrauenswürdigen Proxy stammend betrachten, was potenziell unbefugten Zugriff ermöglicht.

Cache-Vergiftung durch Hop-by-Hop-Header-Injektion

Wenn ein Cache-Server Inhalte basierend auf Hop-by-Hop-Headern falsch zwischenspeichert, kann ein Angreifer bösartige Header einschleusen, um den Cache zu vergiften. Dadurch werden Benutzern, die dieselbe Ressource anfordern, falsche oder bösartige Inhalte bereitgestellt.

Angriffsszenario:

  1. Ein Angreifer sendet eine Anfrage an eine Webanwendung mit einem Hop-by-Hop-Header, der nicht zwischengespeichert werden sollte (z. B. Connection: close, Cookie).
  2. Der schlecht konfigurierte Cache-Server entfernt den Hop-by-Hop-Header nicht und zwischenspeichert die Antwort spezifisch für die Sitzung des Angreifers.
  3. Zukünftige Benutzer, die dieselbe Ressource anfordern, erhalten die zwischengespeicherte Antwort, die für den Angreifer angepasst wurde, was zu Sitzungsentführung oder Offenlegung sensibler Informationen führen kann.
Lernen Sie das Hacken von AWS von Null bis zum Experten mit htARTE (HackTricks AWS Red Team Expert)!