Erleben Sie die Auswirkungen der Path Traversal Vulnerability, die für die jüngsten Apache-Probleme verantwortlich ist

Veröffentlicht Okt 18, 2021
von Charlie Eriksen
FALLSTUDIE

Erleben Sie die Auswirkungen der Path Traversal Vulnerability, die für die jüngsten Apache-Probleme verantwortlich ist

Veröffentlicht Okt 18, 2021
von Charlie Eriksen
Ressource anzeigen
Ressource anzeigen

Anfang Oktober veröffentlichte Apache die Version 2.4.49, um eine Schwachstelle in Bezug auf Path Traversal und Remote Code Execution zu beheben, und anschließend die Version 2.4.50, um die Tatsache zu beheben, dass die Behebung der Schwachstelle in 2.4.49 unvollständig war. Vielleicht haben Sie in den sozialen Medien gelesen, wie wichtig es ist, auf die neueste Version zu aktualisieren, um diese Risiken zu vermeiden, da Apache nach einigen Schätzungen 25 % des Internets betreibt. Aber worum geht es hier eigentlich? Wie groß ist das Risiko hier?

Warum probieren Sie es nicht selbst aus? 

Wir haben eine Mission erstellt, um die Risiken in einer realen Umgebung zu demonstrieren, und haben sie für jeden zum Ausprobieren freigegeben. In dieser Mission zeigen wir Ihnen, wie sich die Path Traversal Vulnerability auf Ihre Infrastruktur und Anwendungen auswirken kann. Klicken Sie unten, um direkt einzusteigen, oder lesen Sie weiter, um mehr über die Sicherheitslücke im Detail zu erfahren.

Banner mit der Aufforderung, die Apache-Mission CVE-2021-41773 zu testen
Zur öffentlichen Mission gehen


Über die Path Traversal-Schwachstelle 

Die Schwachstelle wurde in der Version 2.4.49 eingeführt(aufgrund einer Änderung der URL-Normalisierungsfunktion), wo eine neue Pfadnormalisierungsfunktion eingeführt wurde. Leider konnte sie URL-kodierte Pfade nicht korrekt normalisieren. Dadurch ist es möglich, einen Path-Traversal-Angriff durchzuführen, wenn die folgende Konfiguration nicht vorhanden ist:

Zugriff auf das Verzeichnisdateisystem verweigern oder zulassen


Und wenn mod_cgi aktiviert ist, kann dies auch zu einer Schwachstelle bei der Remote-Code-Ausführung führen. Aber lassen Sie uns zuerst die URL-Kodierung untersuchen, um besser zu verstehen, was schief gelaufen ist.

URL-Kodierung

Die Schwachstelle ist im Wesentlichen auf die fehlende Berücksichtigung von URLs mit URL-Kodierung zurückzuführen. Die neu eingeführte Pfadnormalisierungsfunktion behandelte Fälle, in denen Punkte URL-kodiert waren, nicht vollständig. 

Denken Sie daran, dass Sie, um einen Pfadüberquerungsangriff durchzuführen, mit der Sequenz ../ überqueren müssen. Die Normalisierungsfunktion ist jedoch intelligent genug, um dies zu entfernen. Was können Sie also tun? Sie können die URL mit einem .(Punkt) bis zu %2e kodieren und eine Sequenz wie .%2e/ verwenden. Das würde in vielen Fällen gegen Apache 2.4.40 funktionieren. Sie können aber auch einen Schritt weiter gehen und es doppelt kodieren. Die URL-kodierte Version von .%2e/ ist .%252e/. Damit konnte die versuchte Normalisierung durch Apache umgangen werden.

Aber es gibt einen Haken

Wenn jemand versuchen würde, diese Schwachstelle direkt in seinem Browser auszunutzen, wäre er nicht erfolgreich. Das liegt daran, dass Browser auch versuchen, URLs, die an Server gesendet werden, zu normalisieren. Das bedeutet, dass sogar unsere doppelt kodierte Sequenz entfernt wird. Das bedeutet auch, dass wir nicht einfach einen Browser verwenden können, um dies zu demonstrieren.

Sie können cURL verwenden, um dies zu demonstrieren, indem Sie das Flag --path-as-is verwenden, das verhindert, dass die URL vor dem Senden normalisiert wird:

Curl-Pfad als Ist-Code mit Link

Prävention und Schadensbegrenzung

Um das Problem vollständig zu vermeiden, ist es wichtig, die neuesten Patches von Apache zu verwenden. Insbesondere sollten Sie mindestens ein Upgrade auf 2.4.51 durchführen. Es ist jedoch eine gute Praxis, regelmäßig zu aktualisieren, um auf dem neuesten Stand zu bleiben.

Um dieses Problem abzuschwächen, wenn Sie 2.4.49 verwenden, stellen Sie sicher, dass Sie Folgendes in Ihre Apache-Konfiguration aufgenommen haben:

Verzeichniscode-Tags mit allowoverride none und require all denied rules

Und um Remote Code Execution zu verhindern, deaktivieren Sie mod_cgi , wenn Sie es nicht verwenden.

Erleben Sie die Auswirkungen selbst

Möchten Sie herausfinden, was genau passiert ist und es selbst ausprobieren? 


Ressource anzeigen
Ressource anzeigen

Autor

Charlie Eriksen

Sie wollen mehr?

Tauchen Sie ein in unsere neuesten Erkenntnisse über sichere Kodierung im Blog.

Unsere umfangreiche Ressourcenbibliothek zielt darauf ab, die menschliche Herangehensweise an eine sichere Weiterbildung im Bereich der Programmierung zu stärken.

Blog ansehen
Sie wollen mehr?

Holen Sie sich die neuesten Forschungsergebnisse zur entwicklergesteuerten Sicherheit

Unsere umfangreiche Ressourcenbibliothek ist voll von hilfreichen Ressourcen, von Whitepapers bis hin zu Webinaren, die Ihnen den Einstieg in die entwicklungsorientierte sichere Programmierung erleichtern. Erforschen Sie sie jetzt.

Ressourcendrehscheibe

Erleben Sie die Auswirkungen der Path Traversal Vulnerability, die für die jüngsten Apache-Probleme verantwortlich ist

Veröffentlicht Okt 18, 2021
Von Charlie Eriksen

Anfang Oktober veröffentlichte Apache die Version 2.4.49, um eine Schwachstelle in Bezug auf Path Traversal und Remote Code Execution zu beheben, und anschließend die Version 2.4.50, um die Tatsache zu beheben, dass die Behebung der Schwachstelle in 2.4.49 unvollständig war. Vielleicht haben Sie in den sozialen Medien gelesen, wie wichtig es ist, auf die neueste Version zu aktualisieren, um diese Risiken zu vermeiden, da Apache nach einigen Schätzungen 25 % des Internets betreibt. Aber worum geht es hier eigentlich? Wie groß ist das Risiko hier?

Warum probieren Sie es nicht selbst aus? 

Wir haben eine Mission erstellt, um die Risiken in einer realen Umgebung zu demonstrieren, und haben sie für jeden zum Ausprobieren freigegeben. In dieser Mission zeigen wir Ihnen, wie sich die Path Traversal Vulnerability auf Ihre Infrastruktur und Anwendungen auswirken kann. Klicken Sie unten, um direkt einzusteigen, oder lesen Sie weiter, um mehr über die Sicherheitslücke im Detail zu erfahren.

Banner mit der Aufforderung, die Apache-Mission CVE-2021-41773 zu testen
Zur öffentlichen Mission gehen


Über die Path Traversal-Schwachstelle 

Die Schwachstelle wurde in der Version 2.4.49 eingeführt(aufgrund einer Änderung der URL-Normalisierungsfunktion), wo eine neue Pfadnormalisierungsfunktion eingeführt wurde. Leider konnte sie URL-kodierte Pfade nicht korrekt normalisieren. Dadurch ist es möglich, einen Path-Traversal-Angriff durchzuführen, wenn die folgende Konfiguration nicht vorhanden ist:

Zugriff auf das Verzeichnisdateisystem verweigern oder zulassen


Und wenn mod_cgi aktiviert ist, kann dies auch zu einer Schwachstelle bei der Remote-Code-Ausführung führen. Aber lassen Sie uns zuerst die URL-Kodierung untersuchen, um besser zu verstehen, was schief gelaufen ist.

URL-Kodierung

Die Schwachstelle ist im Wesentlichen auf die fehlende Berücksichtigung von URLs mit URL-Kodierung zurückzuführen. Die neu eingeführte Pfadnormalisierungsfunktion behandelte Fälle, in denen Punkte URL-kodiert waren, nicht vollständig. 

Denken Sie daran, dass Sie, um einen Pfadüberquerungsangriff durchzuführen, mit der Sequenz ../ überqueren müssen. Die Normalisierungsfunktion ist jedoch intelligent genug, um dies zu entfernen. Was können Sie also tun? Sie können die URL mit einem .(Punkt) bis zu %2e kodieren und eine Sequenz wie .%2e/ verwenden. Das würde in vielen Fällen gegen Apache 2.4.40 funktionieren. Sie können aber auch einen Schritt weiter gehen und es doppelt kodieren. Die URL-kodierte Version von .%2e/ ist .%252e/. Damit konnte die versuchte Normalisierung durch Apache umgangen werden.

Aber es gibt einen Haken

Wenn jemand versuchen würde, diese Schwachstelle direkt in seinem Browser auszunutzen, wäre er nicht erfolgreich. Das liegt daran, dass Browser auch versuchen, URLs, die an Server gesendet werden, zu normalisieren. Das bedeutet, dass sogar unsere doppelt kodierte Sequenz entfernt wird. Das bedeutet auch, dass wir nicht einfach einen Browser verwenden können, um dies zu demonstrieren.

Sie können cURL verwenden, um dies zu demonstrieren, indem Sie das Flag --path-as-is verwenden, das verhindert, dass die URL vor dem Senden normalisiert wird:

Curl-Pfad als Ist-Code mit Link

Prävention und Schadensbegrenzung

Um das Problem vollständig zu vermeiden, ist es wichtig, die neuesten Patches von Apache zu verwenden. Insbesondere sollten Sie mindestens ein Upgrade auf 2.4.51 durchführen. Es ist jedoch eine gute Praxis, regelmäßig zu aktualisieren, um auf dem neuesten Stand zu bleiben.

Um dieses Problem abzuschwächen, wenn Sie 2.4.49 verwenden, stellen Sie sicher, dass Sie Folgendes in Ihre Apache-Konfiguration aufgenommen haben:

Verzeichniscode-Tags mit allowoverride none und require all denied rules

Und um Remote Code Execution zu verhindern, deaktivieren Sie mod_cgi , wenn Sie es nicht verwenden.

Erleben Sie die Auswirkungen selbst

Möchten Sie herausfinden, was genau passiert ist und es selbst ausprobieren? 


Wir bitten Sie um Ihre Erlaubnis, Ihnen Informationen über unsere Produkte und/oder verwandte Themen der sicheren Codierung zuzusenden. Wir werden Ihre persönlichen Daten immer mit äußerster Sorgfalt behandeln und sie niemals zu Marketingzwecken an andere Unternehmen verkaufen.

Um das Formular abzuschicken, aktivieren Sie bitte "Analytics"-Cookies. Sie können die Cookies wieder deaktivieren, sobald Sie fertig sind.