hop-by-hop headers
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 dafür gedacht, weitergeleitet zu werden. Standard-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 bezeichnet werden.
Missbrauch von Hop-by-Hop-Headern
Eine unsachgemäße Verwaltung von Hop-by-Hop-Headern durch Proxys kann zu Sicherheitsproblemen führen. Während von Proxys erwartet wird, dass sie diese Header entfernen, tun dies nicht alle, was potenzielle Schwachstellen schafft.
Testen der Handhabung von Hop-by-Hop-Headern
Die Handhabung 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 zu identifizieren, wie Proxys diese Header verwalten und potenziell Fehlkonfigurationen oder Proxy-Verhalten aufzudecken.
Der Missbrauch von Hop-by-Hop-Headern kann zu verschiedenen Sicherheitsimplikationen führen. Im Folgenden sind einige Beispiele aufgeführt, die zeigen, wie diese Header für potenzielle Angriffe manipuliert werden können:
Umgehung von Sicherheitskontrollen mit X-Forwarded-For
X-Forwarded-For
Ein Angreifer kann den X-Forwarded-For
-Header manipulieren, um IP-basierte Zugriffskontrollen zu umgehen. Dieser Header wird häufig von Proxys verwendet, um die ursprüngliche IP-Adresse eines Clients zu verfolgen. Wenn ein Proxy jedoch diesen Header als hop-by-hop behandelt und ohne ordnungsgemäße Validierung weiterleitet, kann ein Angreifer seine IP-Adresse fälschen.
Angriffsszenario:
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.Der Angreifer fügt auch den Header
Connection: close, X-Forwarded-For
hinzu, was den Proxy dazu bringt,X-Forwarded-For
als hop-by-hop zu behandeln.Der falsch konfigurierte Proxy leitet die Anfrage an die Webanwendung weiter, ohne den gefälschten
X-Forwarded-For
-Header.Die Webanwendung, die den ursprünglichen
X-Forwarded-For
-Header nicht sieht, könnte die Anfrage als direkt von einem vertrauenswürdigen Proxy kommend betrachten, was potenziell unbefugten Zugriff ermöglicht.
Cache-Poisoning durch Hop-by-Hop-Header-Injektion
Wenn ein Cache-Server Inhalte basierend auf Hop-by-Hop-Headern falsch zwischenspeichert, könnte ein Angreifer bösartige Header injizieren, um den Cache zu vergiften. Dies würde falsche oder bösartige Inhalte an Benutzer liefern, die dieselbe Ressource anfordern.
Angriffsszenario:
Ein Angreifer sendet eine Anfrage an eine Webanwendung mit einem Hop-by-Hop-Header, der nicht zwischengespeichert werden sollte (z. B.
Connection: close, Cookie
).Der schlecht konfigurierte Cache-Server entfernt den Hop-by-Hop-Header nicht und speichert die Antwort, die spezifisch für die Sitzung des Angreifers ist.
Zukünftige Benutzer, die dieselbe Ressource anfordern, erhalten die zwischengespeicherte Antwort, die für den Angreifer maßgeschneidert war, was potenziell zu Sitzungsübernahme oder Offenlegung sensibler Informationen führen kann.
Last updated