SCW 아이콘
영웅 배경, 구분선 없음
블로그

Programmierer erobern die Sicherheit: Serie „Teilen und Lernen“ — CRLF Injection

야프 카란 싱
2019년 7월 25일 게시
마지막 업데이트: 2026년 3월 9일

Bei Blogs oder Artikeln wie diesem werden die Leser durch Satzzeichen unterstützt. Beispielsweise teilen Punkte den Lesern mit, wo ein Satz endet, während Kommas entweder Artikel in Listen trennen oder harte Pausen einfügen, um Ideen voneinander zu trennen. Bei einem gut geschriebenen Blog (wie diesem) ist die Interpunktion fast unsichtbar, sie ist nur ein Teil des Standard-Hintergrundcodes, den wir alle vor vielen Jahren zu verarbeiten gelernt haben.

Aber was passiert, wenn ein Hacker in diesen Artikel gerät und seltsame Satzzeichen an den falschen Stellen einfügt? So wie das:

Sogar ohne! ändern. das, texten... es? kann. schaffe es! viel? schwieriger. Zu? verarbeiten! die, Information!

Das passiert im Grunde genommen bei einem CRLF-Injektionsangriff. Die CRLF-Buchstaben stehen für Carriage Return und Line Feed, die einzeln oder zusammen verwendet werden, um das Ende einer Leitung zu kennzeichnen. Wenn ein Angreifer einen CR- oder LF-Code in eine bestehende Anwendung einfügen kann, kann er manchmal deren Verhalten ändern. Die Auswirkungen sind im Vergleich zu den meisten Angriffen weniger leicht vorherzusagen, können aber für die Zielorganisation nicht weniger gefährlich sein.

In dieser Folge werden wir lernen:

  • Wie Angreifer eine CRLF-Injektion auslösen können
  • Warum CRLF-Injektionen gefährlich sind
  • Techniken, mit denen diese Sicherheitsanfälligkeit behoben werden kann.

Wie lösen Angreifer eine CRLF-Injektion aus?

CRLF-Zeichen in vorhandenen Code einzufügen und zu versuchen, ein bestimmtes Ergebnis zu erzielen, ist ziemlich schwierig, wenn auch nicht unmöglich. Dies wird noch schwieriger, da ein Angreifer je nach Betriebssystem und anderen Faktoren des Zielsystems unterschiedliche CRLF-Kombinationen verwenden müsste. Moderne Windows-Computer benötigen beispielsweise sowohl CR als auch LF, um eine Zeile zu beenden, während unter Linux nur der LF-Code benötigt wird. HTTP-Anfragen benötigen immer einen präzisen CRLF-Code, um eine Zeile zu beenden.

Abgesehen von der Tatsache, dass CRLF-Angriffe schwierig zu implementieren sind und ihre Ergebnisse noch schwieriger vorherzusagen sind, werden sie auf die gleiche Weise initiiert wie andere Angriffe vom Typ Injektion. Ein böswilliger Benutzer gibt einfach Daten in einen beliebigen Bereich einer Website oder Anwendung ein, der dies zulässt. Nur er gibt den CRLF-Code anstelle von oder nach normalen Eingabedaten ein.

Ein Angreifer könnte beispielsweise den ASCII-Code eingeben, der einen Wagenrücklauf (%0d) gefolgt von ASCII für einen Zeilenvorschub (%0a) am Ende eines HTTPS-Headers darstellt. Die gesamte Abfrage würde dann so aussehen:

https://validsite.com/index.php?page=home%0d%0a

Wenn die Daten nicht bereinigt oder gefiltert werden, kann der obige Code dazu führen, dass auf der Zielanwendung oder Website seltsame Dinge passieren.

Warum sind CRLF-Injektionen gefährlich?

CRLF-Injektionsangriffe sind zwar weniger präzise als die meisten anderen, können aber zumindest zeitweise ziemlich gefährlich sein. Im unteren Bereich kann das Hinzufügen einer zusätzlichen Zeile die Protokolldateien durcheinander bringen, wodurch automatische Cybersicherheitsmaßnahmen ausgelöst werden, um Administratoren vor einem Problem zu warnen. Dies könnte jedoch genutzt werden, um Ressourcen von einem tatsächlichen Angriff abzuhalten, der zur gleichen Zeit stattfindet.

CRLF-Angriffe können aber auch direkt schädlich sein. Wenn eine Anwendung beispielsweise so konzipiert ist, dass sie Befehle akzeptiert und dann nach einer bestimmten Datei sucht, kann das Hinzufügen eines CRLF-Codes zur Abfrage dazu führen, dass die Anwendung diesen Prozess auf dem Bildschirm anzeigt, anstatt ihn versteckt zu halten, was einem Angreifer wertvolle Informationen liefern könnte.

CRLF-Injektionen können auch verwendet werden, um einen sogenannten Response-Splitting-Angriff auszulösen, bei dem die Codes am Ende einer Zeile eine gültige Antwort in mehrere Teile zerlegen. Das kann Hackern die Kontrolle über den Header nach dem CRLF-Code geben, der zum Einfügen von zusätzlichem Code verwendet werden kann. Es kann auch verwendet werden, um eine Öffnung zu schaffen, in die der Angreifer seinen eigenen Code vollständig einfügen und wahrscheinlich eine andere Form von Angriff auslösen kann, und zwar in jede Zeile, die auf den Teil folgt, der durch den CRLF-Angriff unterbrochen wurde.

Beseitigung der CRLF-Injektionsanfälligkeit

Wenn es eine wichtige Botschaft gibt, die wir aus dieser Serie mitnehmen können, dann ist es, niemals Benutzereingaben zu vertrauen. Die meisten Sicherheitslücken, die wir in dieser Serie behandelt haben, betrafen auf die eine oder andere Weise Benutzereingabebereiche, und der CRLF-Injection-Fehler ist da keine Ausnahme.

An jedem Punkt, an dem ein Benutzer Eingaben eingeben kann, müssen Filter angewendet werden, um zu verhindern, dass unautorisierter Code injiziert wird, der von der Anwendung oder dem Server falsch interpretiert werden könnte. Bei CRLF-Angriffen ist das Sperren von HTTP-Headern besonders wichtig, aber Sie dürfen auch die GET- und POST-Parameter oder sogar Cookies nicht vergessen. Eine gute Möglichkeit, gezielt zu verhindern, dass CRLF-Codes dazu beitragen, weitere Injektionen auszulösen, besteht darin, die HTML-Codierung auf alles und jedes anzuwenden, was an den Browser eines Benutzers zurückgesendet wird.

Weitere Informationen zu CRLF-Injektionen

Zum weiteren Lesen können Sie sich ansehen, was OWASP dazu sagt CRLF-Injektionen. Sie können Ihr neu gewonnenes Defensivwissen auch auf die Probe stellen mit dem kostenlose Demo der Secure Code Warrior-Plattform, die Cybersicherheitsteams zu ultimativen Cyberkriegern ausbildet. Um mehr über die Beseitigung dieser Sicherheitslücke und eine Galerie mit anderen Bedrohungen zu erfahren, besuchen Sie die Blog von Secure Code Warrior.

리소스 보기
리소스 보기

Wenn ein Angreifer einen CR- oder LF-Code in eine bestehende Anwendung einfügen kann, kann er manchmal deren Verhalten ändern. Die Auswirkungen sind im Vergleich zu den meisten Angriffen weniger leicht vorherzusagen, können aber für die Zielorganisation nicht weniger gefährlich sein.

더 알고 싶으신가요?

Jaap Karan Singh ist Secure Coding Evangelist, Chief Singh und Mitbegründer von Secure Code Warrior.

더 알아보세요

Secure Code Warrior 소프트웨어 개발 주기 전반에 걸쳐 코드를 보호하고 사이버 보안을 최우선으로 하는 문화를 조성하도록 귀사를 Secure Code Warrior . 앱 보안 관리자, 개발자, 최고정보보안책임자(CISO) 또는 보안 관련 업무를 담당하는 분이라면 누구든, 저희는 귀사가 안전하지 않은 코드로 인한 위험을 줄일 수 있도록 돕습니다.

데모 예약하기
공유하기:
링크드인 브랜드사회적x 로고
저자
야프 카란 싱
게시일: 2019년 7월 25일

Jaap Karan Singh ist Secure Coding Evangelist, Chief Singh und Mitbegründer von Secure Code Warrior.

공유하기:
링크드인 브랜드사회적x 로고

Bei Blogs oder Artikeln wie diesem werden die Leser durch Satzzeichen unterstützt. Beispielsweise teilen Punkte den Lesern mit, wo ein Satz endet, während Kommas entweder Artikel in Listen trennen oder harte Pausen einfügen, um Ideen voneinander zu trennen. Bei einem gut geschriebenen Blog (wie diesem) ist die Interpunktion fast unsichtbar, sie ist nur ein Teil des Standard-Hintergrundcodes, den wir alle vor vielen Jahren zu verarbeiten gelernt haben.

Aber was passiert, wenn ein Hacker in diesen Artikel gerät und seltsame Satzzeichen an den falschen Stellen einfügt? So wie das:

Sogar ohne! ändern. das, texten... es? kann. schaffe es! viel? schwieriger. Zu? verarbeiten! die, Information!

Das passiert im Grunde genommen bei einem CRLF-Injektionsangriff. Die CRLF-Buchstaben stehen für Carriage Return und Line Feed, die einzeln oder zusammen verwendet werden, um das Ende einer Leitung zu kennzeichnen. Wenn ein Angreifer einen CR- oder LF-Code in eine bestehende Anwendung einfügen kann, kann er manchmal deren Verhalten ändern. Die Auswirkungen sind im Vergleich zu den meisten Angriffen weniger leicht vorherzusagen, können aber für die Zielorganisation nicht weniger gefährlich sein.

In dieser Folge werden wir lernen:

  • Wie Angreifer eine CRLF-Injektion auslösen können
  • Warum CRLF-Injektionen gefährlich sind
  • Techniken, mit denen diese Sicherheitsanfälligkeit behoben werden kann.

Wie lösen Angreifer eine CRLF-Injektion aus?

CRLF-Zeichen in vorhandenen Code einzufügen und zu versuchen, ein bestimmtes Ergebnis zu erzielen, ist ziemlich schwierig, wenn auch nicht unmöglich. Dies wird noch schwieriger, da ein Angreifer je nach Betriebssystem und anderen Faktoren des Zielsystems unterschiedliche CRLF-Kombinationen verwenden müsste. Moderne Windows-Computer benötigen beispielsweise sowohl CR als auch LF, um eine Zeile zu beenden, während unter Linux nur der LF-Code benötigt wird. HTTP-Anfragen benötigen immer einen präzisen CRLF-Code, um eine Zeile zu beenden.

Abgesehen von der Tatsache, dass CRLF-Angriffe schwierig zu implementieren sind und ihre Ergebnisse noch schwieriger vorherzusagen sind, werden sie auf die gleiche Weise initiiert wie andere Angriffe vom Typ Injektion. Ein böswilliger Benutzer gibt einfach Daten in einen beliebigen Bereich einer Website oder Anwendung ein, der dies zulässt. Nur er gibt den CRLF-Code anstelle von oder nach normalen Eingabedaten ein.

Ein Angreifer könnte beispielsweise den ASCII-Code eingeben, der einen Wagenrücklauf (%0d) gefolgt von ASCII für einen Zeilenvorschub (%0a) am Ende eines HTTPS-Headers darstellt. Die gesamte Abfrage würde dann so aussehen:

https://validsite.com/index.php?page=home%0d%0a

Wenn die Daten nicht bereinigt oder gefiltert werden, kann der obige Code dazu führen, dass auf der Zielanwendung oder Website seltsame Dinge passieren.

Warum sind CRLF-Injektionen gefährlich?

CRLF-Injektionsangriffe sind zwar weniger präzise als die meisten anderen, können aber zumindest zeitweise ziemlich gefährlich sein. Im unteren Bereich kann das Hinzufügen einer zusätzlichen Zeile die Protokolldateien durcheinander bringen, wodurch automatische Cybersicherheitsmaßnahmen ausgelöst werden, um Administratoren vor einem Problem zu warnen. Dies könnte jedoch genutzt werden, um Ressourcen von einem tatsächlichen Angriff abzuhalten, der zur gleichen Zeit stattfindet.

CRLF-Angriffe können aber auch direkt schädlich sein. Wenn eine Anwendung beispielsweise so konzipiert ist, dass sie Befehle akzeptiert und dann nach einer bestimmten Datei sucht, kann das Hinzufügen eines CRLF-Codes zur Abfrage dazu führen, dass die Anwendung diesen Prozess auf dem Bildschirm anzeigt, anstatt ihn versteckt zu halten, was einem Angreifer wertvolle Informationen liefern könnte.

CRLF-Injektionen können auch verwendet werden, um einen sogenannten Response-Splitting-Angriff auszulösen, bei dem die Codes am Ende einer Zeile eine gültige Antwort in mehrere Teile zerlegen. Das kann Hackern die Kontrolle über den Header nach dem CRLF-Code geben, der zum Einfügen von zusätzlichem Code verwendet werden kann. Es kann auch verwendet werden, um eine Öffnung zu schaffen, in die der Angreifer seinen eigenen Code vollständig einfügen und wahrscheinlich eine andere Form von Angriff auslösen kann, und zwar in jede Zeile, die auf den Teil folgt, der durch den CRLF-Angriff unterbrochen wurde.

Beseitigung der CRLF-Injektionsanfälligkeit

Wenn es eine wichtige Botschaft gibt, die wir aus dieser Serie mitnehmen können, dann ist es, niemals Benutzereingaben zu vertrauen. Die meisten Sicherheitslücken, die wir in dieser Serie behandelt haben, betrafen auf die eine oder andere Weise Benutzereingabebereiche, und der CRLF-Injection-Fehler ist da keine Ausnahme.

An jedem Punkt, an dem ein Benutzer Eingaben eingeben kann, müssen Filter angewendet werden, um zu verhindern, dass unautorisierter Code injiziert wird, der von der Anwendung oder dem Server falsch interpretiert werden könnte. Bei CRLF-Angriffen ist das Sperren von HTTP-Headern besonders wichtig, aber Sie dürfen auch die GET- und POST-Parameter oder sogar Cookies nicht vergessen. Eine gute Möglichkeit, gezielt zu verhindern, dass CRLF-Codes dazu beitragen, weitere Injektionen auszulösen, besteht darin, die HTML-Codierung auf alles und jedes anzuwenden, was an den Browser eines Benutzers zurückgesendet wird.

Weitere Informationen zu CRLF-Injektionen

Zum weiteren Lesen können Sie sich ansehen, was OWASP dazu sagt CRLF-Injektionen. Sie können Ihr neu gewonnenes Defensivwissen auch auf die Probe stellen mit dem kostenlose Demo der Secure Code Warrior-Plattform, die Cybersicherheitsteams zu ultimativen Cyberkriegern ausbildet. Um mehr über die Beseitigung dieser Sicherheitslücke und eine Galerie mit anderen Bedrohungen zu erfahren, besuchen Sie die Blog von Secure Code Warrior.

리소스 보기
리소스 보기

아래 양식을 작성하여 보고서를 다운로드하십시오.

귀하의 허락을 받아 당사 제품 및 안전한 코딩과 관련된 주제에 대한 정보를 보내드리고자 합니다. 당사는 귀하의 개인정보를 항상 세심하게 처리하며, 마케팅 목적으로 타사에 판매하지 않습니다.

제출
scw 성공 아이콘
scw 오류 아이콘
양식을 제출하려면 '분석' 쿠키를 활성화해 주십시오. 완료 후에는 언제든지 다시 비활성화할 수 있습니다.

Bei Blogs oder Artikeln wie diesem werden die Leser durch Satzzeichen unterstützt. Beispielsweise teilen Punkte den Lesern mit, wo ein Satz endet, während Kommas entweder Artikel in Listen trennen oder harte Pausen einfügen, um Ideen voneinander zu trennen. Bei einem gut geschriebenen Blog (wie diesem) ist die Interpunktion fast unsichtbar, sie ist nur ein Teil des Standard-Hintergrundcodes, den wir alle vor vielen Jahren zu verarbeiten gelernt haben.

Aber was passiert, wenn ein Hacker in diesen Artikel gerät und seltsame Satzzeichen an den falschen Stellen einfügt? So wie das:

Sogar ohne! ändern. das, texten... es? kann. schaffe es! viel? schwieriger. Zu? verarbeiten! die, Information!

Das passiert im Grunde genommen bei einem CRLF-Injektionsangriff. Die CRLF-Buchstaben stehen für Carriage Return und Line Feed, die einzeln oder zusammen verwendet werden, um das Ende einer Leitung zu kennzeichnen. Wenn ein Angreifer einen CR- oder LF-Code in eine bestehende Anwendung einfügen kann, kann er manchmal deren Verhalten ändern. Die Auswirkungen sind im Vergleich zu den meisten Angriffen weniger leicht vorherzusagen, können aber für die Zielorganisation nicht weniger gefährlich sein.

In dieser Folge werden wir lernen:

  • Wie Angreifer eine CRLF-Injektion auslösen können
  • Warum CRLF-Injektionen gefährlich sind
  • Techniken, mit denen diese Sicherheitsanfälligkeit behoben werden kann.

Wie lösen Angreifer eine CRLF-Injektion aus?

CRLF-Zeichen in vorhandenen Code einzufügen und zu versuchen, ein bestimmtes Ergebnis zu erzielen, ist ziemlich schwierig, wenn auch nicht unmöglich. Dies wird noch schwieriger, da ein Angreifer je nach Betriebssystem und anderen Faktoren des Zielsystems unterschiedliche CRLF-Kombinationen verwenden müsste. Moderne Windows-Computer benötigen beispielsweise sowohl CR als auch LF, um eine Zeile zu beenden, während unter Linux nur der LF-Code benötigt wird. HTTP-Anfragen benötigen immer einen präzisen CRLF-Code, um eine Zeile zu beenden.

Abgesehen von der Tatsache, dass CRLF-Angriffe schwierig zu implementieren sind und ihre Ergebnisse noch schwieriger vorherzusagen sind, werden sie auf die gleiche Weise initiiert wie andere Angriffe vom Typ Injektion. Ein böswilliger Benutzer gibt einfach Daten in einen beliebigen Bereich einer Website oder Anwendung ein, der dies zulässt. Nur er gibt den CRLF-Code anstelle von oder nach normalen Eingabedaten ein.

Ein Angreifer könnte beispielsweise den ASCII-Code eingeben, der einen Wagenrücklauf (%0d) gefolgt von ASCII für einen Zeilenvorschub (%0a) am Ende eines HTTPS-Headers darstellt. Die gesamte Abfrage würde dann so aussehen:

https://validsite.com/index.php?page=home%0d%0a

Wenn die Daten nicht bereinigt oder gefiltert werden, kann der obige Code dazu führen, dass auf der Zielanwendung oder Website seltsame Dinge passieren.

Warum sind CRLF-Injektionen gefährlich?

CRLF-Injektionsangriffe sind zwar weniger präzise als die meisten anderen, können aber zumindest zeitweise ziemlich gefährlich sein. Im unteren Bereich kann das Hinzufügen einer zusätzlichen Zeile die Protokolldateien durcheinander bringen, wodurch automatische Cybersicherheitsmaßnahmen ausgelöst werden, um Administratoren vor einem Problem zu warnen. Dies könnte jedoch genutzt werden, um Ressourcen von einem tatsächlichen Angriff abzuhalten, der zur gleichen Zeit stattfindet.

CRLF-Angriffe können aber auch direkt schädlich sein. Wenn eine Anwendung beispielsweise so konzipiert ist, dass sie Befehle akzeptiert und dann nach einer bestimmten Datei sucht, kann das Hinzufügen eines CRLF-Codes zur Abfrage dazu führen, dass die Anwendung diesen Prozess auf dem Bildschirm anzeigt, anstatt ihn versteckt zu halten, was einem Angreifer wertvolle Informationen liefern könnte.

CRLF-Injektionen können auch verwendet werden, um einen sogenannten Response-Splitting-Angriff auszulösen, bei dem die Codes am Ende einer Zeile eine gültige Antwort in mehrere Teile zerlegen. Das kann Hackern die Kontrolle über den Header nach dem CRLF-Code geben, der zum Einfügen von zusätzlichem Code verwendet werden kann. Es kann auch verwendet werden, um eine Öffnung zu schaffen, in die der Angreifer seinen eigenen Code vollständig einfügen und wahrscheinlich eine andere Form von Angriff auslösen kann, und zwar in jede Zeile, die auf den Teil folgt, der durch den CRLF-Angriff unterbrochen wurde.

Beseitigung der CRLF-Injektionsanfälligkeit

Wenn es eine wichtige Botschaft gibt, die wir aus dieser Serie mitnehmen können, dann ist es, niemals Benutzereingaben zu vertrauen. Die meisten Sicherheitslücken, die wir in dieser Serie behandelt haben, betrafen auf die eine oder andere Weise Benutzereingabebereiche, und der CRLF-Injection-Fehler ist da keine Ausnahme.

An jedem Punkt, an dem ein Benutzer Eingaben eingeben kann, müssen Filter angewendet werden, um zu verhindern, dass unautorisierter Code injiziert wird, der von der Anwendung oder dem Server falsch interpretiert werden könnte. Bei CRLF-Angriffen ist das Sperren von HTTP-Headern besonders wichtig, aber Sie dürfen auch die GET- und POST-Parameter oder sogar Cookies nicht vergessen. Eine gute Möglichkeit, gezielt zu verhindern, dass CRLF-Codes dazu beitragen, weitere Injektionen auszulösen, besteht darin, die HTML-Codierung auf alles und jedes anzuwenden, was an den Browser eines Benutzers zurückgesendet wird.

Weitere Informationen zu CRLF-Injektionen

Zum weiteren Lesen können Sie sich ansehen, was OWASP dazu sagt CRLF-Injektionen. Sie können Ihr neu gewonnenes Defensivwissen auch auf die Probe stellen mit dem kostenlose Demo der Secure Code Warrior-Plattform, die Cybersicherheitsteams zu ultimativen Cyberkriegern ausbildet. Um mehr über die Beseitigung dieser Sicherheitslücke und eine Galerie mit anderen Bedrohungen zu erfahren, besuchen Sie die Blog von Secure Code Warrior.

웨비나 시청하기
시작하세요
더 알아보세요

아래 링크를 클릭하여 이 자료의 PDF를 다운로드하십시오.

Secure Code Warrior 소프트웨어 개발 주기 전반에 걸쳐 코드를 보호하고 사이버 보안을 최우선으로 하는 문화를 조성하도록 귀사를 Secure Code Warrior . 앱 보안 관리자, 개발자, 최고정보보안책임자(CISO) 또는 보안 관련 업무를 담당하는 분이라면 누구든, 저희는 귀사가 안전하지 않은 코드로 인한 위험을 줄일 수 있도록 돕습니다.

보고서 보기데모 예약하기
리소스 보기
공유하기:
링크드인 브랜드사회적x 로고
더 알고 싶으신가요?

공유하기:
링크드인 브랜드사회적x 로고
저자
야프 카란 싱
게시일: 2019년 7월 25일

Jaap Karan Singh ist Secure Coding Evangelist, Chief Singh und Mitbegründer von Secure Code Warrior.

공유하기:
링크드인 브랜드사회적x 로고

Bei Blogs oder Artikeln wie diesem werden die Leser durch Satzzeichen unterstützt. Beispielsweise teilen Punkte den Lesern mit, wo ein Satz endet, während Kommas entweder Artikel in Listen trennen oder harte Pausen einfügen, um Ideen voneinander zu trennen. Bei einem gut geschriebenen Blog (wie diesem) ist die Interpunktion fast unsichtbar, sie ist nur ein Teil des Standard-Hintergrundcodes, den wir alle vor vielen Jahren zu verarbeiten gelernt haben.

Aber was passiert, wenn ein Hacker in diesen Artikel gerät und seltsame Satzzeichen an den falschen Stellen einfügt? So wie das:

Sogar ohne! ändern. das, texten... es? kann. schaffe es! viel? schwieriger. Zu? verarbeiten! die, Information!

Das passiert im Grunde genommen bei einem CRLF-Injektionsangriff. Die CRLF-Buchstaben stehen für Carriage Return und Line Feed, die einzeln oder zusammen verwendet werden, um das Ende einer Leitung zu kennzeichnen. Wenn ein Angreifer einen CR- oder LF-Code in eine bestehende Anwendung einfügen kann, kann er manchmal deren Verhalten ändern. Die Auswirkungen sind im Vergleich zu den meisten Angriffen weniger leicht vorherzusagen, können aber für die Zielorganisation nicht weniger gefährlich sein.

In dieser Folge werden wir lernen:

  • Wie Angreifer eine CRLF-Injektion auslösen können
  • Warum CRLF-Injektionen gefährlich sind
  • Techniken, mit denen diese Sicherheitsanfälligkeit behoben werden kann.

Wie lösen Angreifer eine CRLF-Injektion aus?

CRLF-Zeichen in vorhandenen Code einzufügen und zu versuchen, ein bestimmtes Ergebnis zu erzielen, ist ziemlich schwierig, wenn auch nicht unmöglich. Dies wird noch schwieriger, da ein Angreifer je nach Betriebssystem und anderen Faktoren des Zielsystems unterschiedliche CRLF-Kombinationen verwenden müsste. Moderne Windows-Computer benötigen beispielsweise sowohl CR als auch LF, um eine Zeile zu beenden, während unter Linux nur der LF-Code benötigt wird. HTTP-Anfragen benötigen immer einen präzisen CRLF-Code, um eine Zeile zu beenden.

Abgesehen von der Tatsache, dass CRLF-Angriffe schwierig zu implementieren sind und ihre Ergebnisse noch schwieriger vorherzusagen sind, werden sie auf die gleiche Weise initiiert wie andere Angriffe vom Typ Injektion. Ein böswilliger Benutzer gibt einfach Daten in einen beliebigen Bereich einer Website oder Anwendung ein, der dies zulässt. Nur er gibt den CRLF-Code anstelle von oder nach normalen Eingabedaten ein.

Ein Angreifer könnte beispielsweise den ASCII-Code eingeben, der einen Wagenrücklauf (%0d) gefolgt von ASCII für einen Zeilenvorschub (%0a) am Ende eines HTTPS-Headers darstellt. Die gesamte Abfrage würde dann so aussehen:

https://validsite.com/index.php?page=home%0d%0a

Wenn die Daten nicht bereinigt oder gefiltert werden, kann der obige Code dazu führen, dass auf der Zielanwendung oder Website seltsame Dinge passieren.

Warum sind CRLF-Injektionen gefährlich?

CRLF-Injektionsangriffe sind zwar weniger präzise als die meisten anderen, können aber zumindest zeitweise ziemlich gefährlich sein. Im unteren Bereich kann das Hinzufügen einer zusätzlichen Zeile die Protokolldateien durcheinander bringen, wodurch automatische Cybersicherheitsmaßnahmen ausgelöst werden, um Administratoren vor einem Problem zu warnen. Dies könnte jedoch genutzt werden, um Ressourcen von einem tatsächlichen Angriff abzuhalten, der zur gleichen Zeit stattfindet.

CRLF-Angriffe können aber auch direkt schädlich sein. Wenn eine Anwendung beispielsweise so konzipiert ist, dass sie Befehle akzeptiert und dann nach einer bestimmten Datei sucht, kann das Hinzufügen eines CRLF-Codes zur Abfrage dazu führen, dass die Anwendung diesen Prozess auf dem Bildschirm anzeigt, anstatt ihn versteckt zu halten, was einem Angreifer wertvolle Informationen liefern könnte.

CRLF-Injektionen können auch verwendet werden, um einen sogenannten Response-Splitting-Angriff auszulösen, bei dem die Codes am Ende einer Zeile eine gültige Antwort in mehrere Teile zerlegen. Das kann Hackern die Kontrolle über den Header nach dem CRLF-Code geben, der zum Einfügen von zusätzlichem Code verwendet werden kann. Es kann auch verwendet werden, um eine Öffnung zu schaffen, in die der Angreifer seinen eigenen Code vollständig einfügen und wahrscheinlich eine andere Form von Angriff auslösen kann, und zwar in jede Zeile, die auf den Teil folgt, der durch den CRLF-Angriff unterbrochen wurde.

Beseitigung der CRLF-Injektionsanfälligkeit

Wenn es eine wichtige Botschaft gibt, die wir aus dieser Serie mitnehmen können, dann ist es, niemals Benutzereingaben zu vertrauen. Die meisten Sicherheitslücken, die wir in dieser Serie behandelt haben, betrafen auf die eine oder andere Weise Benutzereingabebereiche, und der CRLF-Injection-Fehler ist da keine Ausnahme.

An jedem Punkt, an dem ein Benutzer Eingaben eingeben kann, müssen Filter angewendet werden, um zu verhindern, dass unautorisierter Code injiziert wird, der von der Anwendung oder dem Server falsch interpretiert werden könnte. Bei CRLF-Angriffen ist das Sperren von HTTP-Headern besonders wichtig, aber Sie dürfen auch die GET- und POST-Parameter oder sogar Cookies nicht vergessen. Eine gute Möglichkeit, gezielt zu verhindern, dass CRLF-Codes dazu beitragen, weitere Injektionen auszulösen, besteht darin, die HTML-Codierung auf alles und jedes anzuwenden, was an den Browser eines Benutzers zurückgesendet wird.

Weitere Informationen zu CRLF-Injektionen

Zum weiteren Lesen können Sie sich ansehen, was OWASP dazu sagt CRLF-Injektionen. Sie können Ihr neu gewonnenes Defensivwissen auch auf die Probe stellen mit dem kostenlose Demo der Secure Code Warrior-Plattform, die Cybersicherheitsteams zu ultimativen Cyberkriegern ausbildet. Um mehr über die Beseitigung dieser Sicherheitslücke und eine Galerie mit anderen Bedrohungen zu erfahren, besuchen Sie die Blog von Secure Code Warrior.

목차

PDF 다운로드
리소스 보기
더 알고 싶으신가요?

Jaap Karan Singh ist Secure Coding Evangelist, Chief Singh und Mitbegründer von Secure Code Warrior.

더 알아보세요

Secure Code Warrior 소프트웨어 개발 주기 전반에 걸쳐 코드를 보호하고 사이버 보안을 최우선으로 하는 문화를 조성하도록 귀사를 Secure Code Warrior . 앱 보안 관리자, 개발자, 최고정보보안책임자(CISO) 또는 보안 관련 업무를 담당하는 분이라면 누구든, 저희는 귀사가 안전하지 않은 코드로 인한 위험을 줄일 수 있도록 돕습니다.

데모 예약하기다운로드
공유하기:
링크드인 브랜드사회적x 로고
자원 허브

시작을 위한 자료

더 많은 글
자원 허브

시작을 위한 자료

더 많은 글