EN

Was ist eine CRLF-Injektion

In diesem Artikel:

CRLF: Bedeutung

CRLF steht für die Sonderzeichen Carriage Return (\r) und Line Feed (\n), zwei Elemente, die in bestimmten Betriebssystemen, z. B. Windows, sowie in verschiedenen Internetprotokollen wie HTTP verwendet werden. Carriage Return bedeutet das Ende einer Zeile, während Line Feed eine neue Zeile kennzeichnet. 

Der Zweck der CRLF-Kombination besteht normalerweise darin, zu signalisieren, wo ein Objekt in einem Textstrom endet oder beginnt. Wenn z. B. ein Client (Browser) Inhalte auf einer Website anfordert, gibt der Server den Inhalt mit HTTP-Kopfzeilen, dem so genannten Antwortkörper, zurück. Die Kopfzeilen in der Antwort werden durch CR und LF vom eigentlichen Inhalt der Website getrennt. 

Was ist ein CRLF-Injektionsangriff?

Die CRLF-Zeichenfolge kann jedoch auf bösartige Weise verwendet werden, was als CRLF-Injektionsangriff bekannt ist. Bei diesem Angriff handelt es sich um eine serverseitige Injektion auf der Anwendungsebene. 

Durch Ausnutzung einer CRLF-Injektionsschwachstelle im Server, die dazu führt, dass Benutzereingaben aus einer nicht vertrauenswürdigen Quelle zugelassen werden, können Angreifer Textströme aufteilen und bösartige Inhalte einschleusen, die nicht neutralisiert oder bereinigt werden. 

Damit ein solcher Angriff erfolgreich sein kann, muss ein Server sowohl solche Benutzereingaben zulassen als auch für die Verwendung von CRLF-Zeichen anfällig sein. Das heißt, wenn die Plattform diese Zeichen nicht verwendet, ist sie nicht angreifbar, selbst wenn unkorrigierte Benutzereingaben durchkommen können.

Wenn eine CRLF-Injektion erfolgreich ist, kann dies die Tür für weitere Angriffe öffnen, z. B. Cross-Site-Scripting (XSS), Vergiftung des Webserver-Caches oder Vergiftung des Client-Webbrowsers, Entführung von Client-Sitzungen, Cookie-Injektionen, Phishing-Angriffe, Verunstaltung von Websites und vieles mehr. 

Mit anderen Worten: Ein CRLF-Injektionsangriff ist in der Regel kein Selbstzweck, sondern eher ein Mittel, das die Tür für weitere Angriffe öffnet. 

Welche Arten von CRLF-Injektionen gibt es?

Es gibt zwei Haupttypen von CRLF-Injektionen: HTTP Response Splitting und Log Injection. Lesen Sie im Folgenden mehr darüber.

Response-Splitting

Eine genauere Bezeichnung für diese Art der Injektion ist Unzulässige Neutralisierung von CRLF-Sequenzen in HTTP-Headern. Dieser Name beschreibt auch die Hauptschwachstelle, die mit diesem Angriff verbunden ist. 

Wenn ein Server die vom Benutzer bereitgestellten Eingaben nicht ordnungsgemäß bereinigt, können Angreifer CRLF-Zeichen und eine eigene Textsequenz einfügen oder HTTP-Header einfügen. Damit soll der Server gezwungen werden, eine bestimmte Aktion durchzuführen. 

Nach der Injektion antwortet der Server dem Client, indem er die Anweisungen des Angreifers in den Antwort-Header aufnimmt. Wenn es den Angreifern gelungen ist, die Antwort aufzuteilen, können sie außerdem verschiedene Antworten erstellen und an den Client senden.

Wenn der Browser die Anweisungen erhält, führt er sie aus. Dies kann dazu führen, dass die Tür für weitere Angriffe geöffnet wird oder dass Aktionen durchgeführt werden, die zu einem Einbruch und einer Kompromittierung von Daten führen. 

Log-Injektion

Log Injections sind auch als Log Poisoning oder Log Splitting bekannt. Bei diesem Angriff werden nicht vertrauenswürdige oder nicht validierte Daten in eine Protokolldatei eingefügt. Bei einer solchen Datei kann es sich um ein Systemprotokoll, ein Benutzer- oder Zugriffsprotokoll und vieles mehr handeln. 

Es gibt mehrere Arten von Log-Injection-Angriffen. Eine davon besteht darin, ein Protokoll zu beschädigen und unbrauchbar zu machen oder es zu fälschen und seine Daten zu verändern, um so gefälschte Protokolleinträge zu erstellen. Das Fälschen von Protokollen kann dazu verwendet werden, Spuren eines Angriffs zu verwischen, die Aufmerksamkeit auf eine andere Partei zu lenken und Verwirrung zu stiften sowie von anderen möglichen Angriffen abzulenken, die zur gleichen Zeit durchgeführt werden.   

Die zweite Möglichkeit der Log-Injection besteht darin, einen XSS-Angriff über das Protokoll zu starten, wenn dieses aufgrund von Schwachstellen in einer Webanwendung angezeigt wird. Eine dritte Möglichkeit der Log-Injection besteht darin, Befehle einzufügen, die ein Parser beim Lesen des Protokolls ausführen könnte. 

In beiden Fällen verlassen sich Angreifer auf die Möglichkeit, mit Hilfe von CRLF-Zeichen unsanierte Daten in Protokolle zu injizieren.

Welche Auswirkungen haben CRLF-Injection-Angriffe?

Die meisten modernen Server sind wahrscheinlich nicht anfällig für CRLF-Injektionen, da die Administratoren die notwendigen Schritte unternommen haben, um diese Möglichkeit zu verhindern. Je nach Sicherheitsniveau einer Anwendung kann die Schwere einer CRLF-Injection jedoch von geringfügig bis sehr schwerwiegend reichen.

Eine erfolgreiche CRLF-Injektion kann alle Folgen eines XSS-Angriffs oder einer Cross-Site-Request-Forgery (CSRF) haben, z. B. die Offenlegung oder Verfälschung sensibler Benutzerdaten. Ein solcher Angriff kann unter Umständen dazu führen, dass ein ganzes Dateisystem gelöscht wird, wenn sich Angreifer den nötigen Zugriff verschaffen können. 

Wie lassen sich CRLF-Injektionsschwachstellen vermeiden?

Glücklicherweise lassen sich Sicherheitslücken, die zu einer CRLF-Injection führen können, leicht beheben. Im Folgenden finden Sie einige Möglichkeiten, wie Sie Ihre Anwendung vor diesen Schwachstellen schützen können:

  • Vertrauen Sie niemals auf Benutzereingaben und verwenden Sie diese direkt im HTTP-Stream
  • Bereinigen und validieren Sie alle Benutzereingaben, bevor sie die Antwort-Header erreichen, und/oder kodieren Sie die Ausgabe in den HTTP-Headern, die für die Benutzer sichtbar sind, um eine Injektion in die Antwort zu verhindern.
  • Kodierung von CRLF-Zeichen, so dass sie vom Server nicht erkannt werden, selbst wenn sie eingegeben werden
  • Entfernen Sie Zeilenumbrüche, bevor Sie den Inhalt in den Header übertragen
  • Deaktivieren Sie alle unnötigen/unbenutzten Kopfzeilen im Webserver
  • Entfernen Sie CRLF-Zeichen aus den Daten, bevor Sie sie protokollieren.
  • Alle aktuellen Patches einspielen
  • Regelmäßig scannen

Erhalten Sie jetzt kostenlos einen schnellen Sicherheitsbericht für Ihre Website

Wir analysieren derzeit http://example.com
Wir scannen derzeit http://example.com
Status des Scans: In Bearbeitung
Scan target: http://example.com/laskdlaksd/12lklkasldkasada.a
Datum: 27/05/2022
Crashtest Security Suite prüft auf:
Information disclosure Known vulnerabilities SSL misconfiguration Open ports
Scanauftrag ausfüllen
Bitte geben Sie Ihre Daten ein, um die schnelle Sicherheitsüberprüfung zu erhalten.
Ein Sicherheitsspezialist analysiert gerade Ihren Scan-Bericht.
Bitte geben Sie Ihre Telefon-/Handynummer an, damit wir Ihre Identität überprüfen können:
Ihren Bericht anfordern
Vielen Dank.
Wir haben Ihren Antrag erhalten.
Sobald Ihr Sicherheitsaudit fertig ist, werden wir Sie benachrichtigen.