Erleben Sie die Auswirkungen der Path Traversal Vulnerability, die für die jüngsten Apache-Probleme verantwortlich ist
Erleben Sie die Auswirkungen der Path Traversal Vulnerability, die für die jüngsten Apache-Probleme verantwortlich ist
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.
Ü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:
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:
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:
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?
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.
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.
Erleben Sie die Auswirkungen der Path Traversal Vulnerability, die für die jüngsten Apache-Probleme verantwortlich ist
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.
Ü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:
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:
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:
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?