Web14: Sicherheitsprobleme im HTTP-Protokoll

Web14: Sicherheitsprobleme im HTTP-Protokoll

In diesem Artikel werden einige Sicherheitsprobleme im HTTP-Protokoll vorgestellt , die in den beiden Dokumenten RFC 7230 und RFC 7231 angesprochen werden. Beispiele im Artikel zu bestimmten Fehlern werden von OWASP referenziert.

1. Risiken durch Zwischenfaktoren

HTTP ermöglicht den Einsatz von Vermittlern, um über eine Reihe von Verbindungen auf Anfragen zu antworten. Es gibt drei gemeinsame Zwischenelemente: Proxy, Gateway und Tunnel.

Eine Anfrage oder Antwort muss die Punkte A, B und C durchlaufen. Sie können auf vertrauliche Informationen zugreifen, die übertragen werden, wie z. B. persönliche Informationen von Benutzern oder Organisationen. Die mangelnde Beachtung von Sicherheit und Datenschutz durch Vermittler kann zu einer Vielzahl potenzieller Angriffe führen.

Systementwickler und Entwickler sollten Datenschutz- und Sicherheitsfaktoren während des Systemdesign-, Codierungs- und Bereitstellungsprozesses berücksichtigen.

Benutzer müssen sich der Gefahren der Verwendung nicht vertrauenswürdiger Proxys oder Gateways bewusst sein.

2. Antwortaufteilung

Die Aufteilung von Antworten (auch bekannt als CRLF-Injection) ist eine beliebte Web-Exploit-Technik. Der Angreifer sendet in einigen Anforderungsparametern verschlüsselte Daten, die dann dekodiert und in einem bestimmten Feld des Antwortheaders wiederholt werden.

Wenn es sich bei diesen Daten um ein Symbol handelt, das das Ende der Antwort darstellt, und eine nachfolgende Antwort eingeleitet wird, wird die ursprüngliche Antwort in zwei Teile geteilt und der Inhalt der zweiten Antwort wird vom Angreifer kontrolliert. Der Angreifer kann dann innerhalb derselben dauerhaften Verbindung eine weitere Anfrage stellen und den Empfänger (einschließlich Vermittlern) dazu verleiten, zu glauben, dass diese zweite Antwort eine Antwort auf die zweite Anfrage ist.

3. Fordern Sie Schmuggel an

Beim Anforderungsschmuggel handelt es sich um eine Technik, die Unterschiede in der Verarbeitung von Anforderungen durch verschiedene Servertypen ausnutzt, um scheinbar harmlose, an die ursprüngliche Anforderung angehängte Anforderungen zu verbergen.

Betrachten wir das folgende Beispiel:

Angenommen, eine POST-Anfrage enthält im Header zwei „Content-length“-Felder mit zwei unterschiedlichen Werten. Einige Server lehnen diese Anfrage ab (IIS und Apache), andere jedoch nicht. Beispielsweise verwendet SunONE W/S 6.1 zuerst das Feld „Inhaltslänge“, während sunONE Proxy 3.6 das Feld „Inhaltslänge“ als zweites verwendet.

Angenommen, SITE ist der DNS eines SunONE W/S, der sich hinter einem SunONE-Proxy befindet, befindet sich auf dem SunONE W/S eine Datei „poison.html“. So können Sie HTTP Request Suggling aufgrund von Inkonsistenzen bei der Verarbeitung zwischen zwei Servern ausnutzen:

Web14: Sicherheitsprobleme im HTTP-Protokoll

[Beachten Sie, dass jede Zeile mit einem CRLF („“) endet, außer Zeile 10]

Betrachten wir, was passiert, wenn eine Anfrage über den Proxyserver an W/S gesendet wird. Zunächst analysiert der Proxy die Anfrage aus den Zeilen 1 bis 7 (blau) und stößt auf zwei Content-Length-Felder. Wie oben erwähnt, ignoriert es das erste Feld und geht davon aus, dass der Anforderungstext 44 Byte lang ist. Daher werden die Daten aus den Zeilen 8 bis 10 als erster Anforderungstext behandelt (die Daten aus den Zeilen 8 bis 10 sind genau 44 Byte lang). Der Proxy analysiert dann die Zeilen 11 bis 14 (in Rot) als zweite Anfrage des Clients.

Sehen wir uns nun an, wie W/S die oben genannten Daten interpretiert, wenn sie vom Proxy weitergeleitet werden. Im Gegensatz zu Proxys verwendet W/S das erste Content-Length-Feld und interpretiert es wie folgt: Die erste Anfrage hat keinen Hauptteil und die zweite Anfrage beginnt in Zeile 8 (beachten Sie, dass W/S ab Zeile 11 den Wert analysiert). des Bla-Feldes).

Sehen wir uns als Nächstes an, wie die Antwort an den Client zurückgegeben wird. Die Anfrage, die W/S versteht, ist „POST /foobar.html“ (aus Zeile 1) und „GET /poison.html“ (aus Zeile 8), sodass dem Client zwei Antworten mit dem Inhalt der Foobar-Seite gesendet werden. html undpoison.html. Der Proxy versteht, dass diese beiden Antworten zwei Anfragen entsprechen: „POST /foobar.html“ (aus Zeile 1) und „GET /page_to_poison.html“ (Zeile 11). Der Proxy speichert den Inhalt der Seite „poison.html“, die der URL „page_to_poison.html“ entspricht, im Cache (Cache-Poisoning). Wenn der Client von dort „page_to_poison.html“ anfordert, erhält er den Inhalt der Seite „poison.html“.

4. Angriff basierend auf dem Dateipfad

Webserver nutzen häufig ihr lokales Dateisystem, um die Zuordnung von Dateinamen in URIs zu tatsächlichen Ressourcen auf dem Server zu verwalten. Die meisten Dateisysteme sind nicht darauf ausgelegt, vor bösartigen Dateipfaden zu schützen. Daher muss der Server den Zugriff auf wichtige Systemdateien vermeiden.

Beispielsweise verwenden UNIX, Microsoft Windows und mehrere andere Betriebssysteme „..“ als Pfadelement, um ein Verzeichnis eine Ebene über der aktuellen Datei/dem aktuellen Verzeichnis darzustellen. Ohne ordnungsgemäße Eingabekontrolle und Autorisierung kann auf vertrauliche Dateien/Ordner des Systems zugegriffen werden, indem Pfade eingegeben werden, die auf diese Dateien/Ordner verweisen.

5. Arten von Angriffen: Command-Injection, Code-Injection, Query-Injection

[Webserver verwenden häufig Parameter im URI als Eingabe, um Systembefehle und Datenbankabfragen auszuführen. Den in der Anfrage erhaltenen Daten kann jedoch nicht immer vertraut werden. Ein Angreifer kann Komponenten in der Anfrage erstellen und ändern (z. B. Methoden, Felder im Header, Text usw.), um Systembefehle auszuführen, die Datenbank abzufragen usw.

SQL-Injection ist beispielsweise ein häufiger Angriff, bei dem der Webserver Parameter im URI empfängt, die Teil der SQL-Abfrage sind. Daher kann ein Angreifer den Webserver dazu verleiten, illegale SQL-Abfragen auszuführen, um die Datenbank zu stehlen oder zu sabotieren.
Im Allgemeinen sollten von Benutzern übermittelte Daten nicht direkt zur Ausführung von Vorgängen auf dem Server verwendet werden. Diese Daten müssen Filter durchlaufen, die definieren, was gültig und was ungültig ist, und so unerwünschte Daten eliminieren.

6. Offenlegung personenbezogener Daten

Clients enthalten oft viele persönliche Informationen, einschließlich Informationen, die der Benutzer für die Interaktion mit dem Server bereitstellt (z. B. Benutzername, Passwort, Standort, E-Mail-Adresse usw.) und Informationen über Webbrowsing-Aktivitäten des Benutzers (Verlauf, Lesezeichen, usw.). Bei der Umsetzung sollte darauf geachtet werden, dass Punkte vermieden werden, die diese privaten Informationen preisgeben können.

7. Offenlegung vertraulicher Informationen in der URI

URIs sind von Natur aus dazu gedacht, mit allen Benutzern geteilt zu werden, und es kann nicht garantiert werden, dass sie sicher sind. URIs werden häufig im Quellcode der Website angezeigt und ohne Schutzmechanismen in Lesezeichen gespeichert. Daher ist es unsicher, wenn der URI vertrauliche Informationen, persönliche Informationen usw. enthält.

Vermeiden Sie die Verwendung der GET-Methode zum Senden persönlicher Informationen an den Server, da diese im URI angezeigt werden. Verwenden Sie stattdessen die POST-Methode.

8. Offenlegung verwendeter Softwareinformationen

Die Felder User-Agent, Via, Server im Header geben normalerweise Auskunft über die vom Absender verwendete Software. Theoretisch können Angreifer dadurch bekannte Schwachstellen in dieser Software leichter ausnutzen.


So überprüfen Sie den Druckdokumentverlauf unter Windows 10

So überprüfen Sie den Druckdokumentverlauf unter Windows 10

Es ist etwas schwierig, den Druckerverlauf zu überprüfen, um zu sehen, was gedruckt wurde. Denn anhand der Tintenmenge lässt sich nicht erkennen, wie viele Dokumente gedruckt wurden. Sie müssen Druckprotokolle in Windows 10 aktivieren und hier erfahren Sie, wie das geht.

Die 10 größten Computer-„Katastrophen“ und wie man damit umgeht

Die 10 größten Computer-„Katastrophen“ und wie man damit umgeht

Die Verwendung eines Computers bedeutet, sich mit Problemen und Problemen herumschlagen zu müssen, zum Beispiel mit dem Verlust aller Daten, wenn die Festplatte ausfällt. Hier sind 10 häufige Computerprobleme und wie man sie löst.

Anweisungen zur Verwendung von HitmanPro.Kickstart zum Starten eines mit Viren infizierten Computers

Anweisungen zur Verwendung von HitmanPro.Kickstart zum Starten eines mit Viren infizierten Computers

Mit HitmanPro.Kickstart können Sie Ihren Computer von einem USB-Flash-Laufwerk starten, um Ransomware zu entfernen. Da Sie Ihren Computer nicht auf normale Weise starten können, hat Surfright HitmanPro.Kickstart entwickelt, das für normale Benutzer einfach zu verwenden ist. Alles, was Sie tun müssen, ist, Ihr System mit Hilfe des HitmanPro.Kickstart-USB-Flash-Laufwerks zu starten, und schon ist es einsatzbereit.

So entfernen Sie die Optionen „Netzlaufwerk verbinden“ und „Netzlaufwerk trennen“ von diesem PC

So entfernen Sie die Optionen „Netzlaufwerk verbinden“ und „Netzlaufwerk trennen“ von diesem PC

Dieser Artikel hilft Ihnen dabei, die Optionen „Netzwerklaufwerk zuordnen“ und „Netzwerklaufwerk trennen“ aus dem Ordner „Dieser PC“ unter Windows 10 zu entfernen.

Was ist ein virtueller privater Server (VPS)?

Was ist ein virtueller privater Server (VPS)?

Virtual Private Server (VPS) ist ein virtueller Server, der sich wie ein dedizierter/privater Server anfühlt, obwohl er auf einem physischen Computer installiert ist, auf dem mehrere Betriebssysteme laufen.

So finden Sie den schnellsten DNS, um die Internetgeschwindigkeit zu optimieren

So finden Sie den schnellsten DNS, um die Internetgeschwindigkeit zu optimieren

Welche DNS-Option eignet sich am besten zur Optimierung der Internetgeschwindigkeit? Wie erkennt man, ob ein DNS besser ist als seine Konkurrenten? Lesen Sie diesen Artikel, um das schnellste DNS zu finden und Ihre Internetgeschwindigkeit zu optimieren.

Was ist ein Dateiserver?

Was ist ein Dateiserver?

Ein Dateiserver ist eine zentrale Serverinstanz in einem Computernetzwerk, die es angeschlossenen Clients ermöglicht, auf die Speicherkapazität des Servers zuzugreifen. Dieser Begriff umfasst sowohl die Hardware als auch die Software, die für die Bereitstellung eines solchen Servers erforderlich sind.

Was ist das Besondere an der Windows 10-Signatur?

Was ist das Besondere an der Windows 10-Signatur?

Die meisten Computerbenutzer sind mit den Editionen Windows 10 S, Professional und Enterprise vertraut. Was ist also die Windows 10-Signatur? Finden wir es im folgenden Artikel heraus!

Was ist Netzwerk-TAP? Wie trägt es zur Sicherung des Systems bei?

Was ist Netzwerk-TAP? Wie trägt es zur Sicherung des Systems bei?

Ein Netzwerk-TAP ist ein Hardwaregerät, das Sie in einem Netzwerk platzieren, insbesondere zwischen zwei verbundenen Netzwerkgeräten (z. B. einem Switch, Router oder einer Firewall), um den Netzwerkverkehr zu überwachen.

Was ist FormBook-Malware? Wie zu entfernen?

Was ist FormBook-Malware? Wie zu entfernen?

Wenn Sie sensible Daten verwalten, sollten Sie sich über FormBook-Malware Sorgen machen. Sobald sich diese informationsstehlende Malware im Netzwerk oder auf dem PC befindet, kann sie Ihrem Unternehmen irreparablen Schaden zufügen.