Einige Server mit nginx sind anfĂ€llig fĂŒr die Nginx Alias Traversal-Technik, die 2018 auf der Blackhat-Konferenz vorgestellt wurde und den Zugriff auf Dateien und Verzeichnisse ermöglicht, die auĂerhalb des in der Direktive âaliasâ angegebenen Stammverzeichnisses liegen. Das Problem tritt nur in Konfigurationen auf, in denen die Direktive âaliasâ innerhalb des âlocationâ-Blocks platziert ist, deren Parameter nicht mit dem Zeichen â/â endet, wĂ€hrend âaliasâ mit â/â endet.

Das Wesentliche des Problems ist, dass Dateien fĂŒr Blöcke mit der Direktive alias durch AnfĂŒgung des angeforderten Pfades zurĂŒckgegeben werden, nachdem sie mit dem Muster aus der Direktive location abgeglichen und der in diesem Muster angegebene Teil des Pfades entfernt wurde. FĂŒr das obige Beispiel der anfĂ€lligen Konfiguration kann ein Angreifer die Datei â/img.. /test.txtâ anfordern und dieser Request fĂ€llt unter das angegebene location-Muster â/imgâ, nach dem der verbleibende Rest â.. /test.txtâ an den Pfad aus der Direktive alias â/var/images/â angehĂ€ngt wird, sodass letztlich die Datei â/var/images/.. /test.txtâ angefordert wird. Damit kann ein Angreifer auf beliebige Dateien im Verzeichnis â/varâ zugreifen, und nicht nur auf Dateien in â/var/images/â, beispielsweise könnte fĂŒr den Download des nginx-Logs die Anfrage â/img.. /log/nginx/access.logâ gesendet werden.
In Konfigurationen, in denen der Wert der Direktive alias nicht mit dem Zeichen â/â endet (zum Beispiel âalias /var/images;â), kann ein Angreifer nicht in das ĂŒbergeordnete Verzeichnis wechseln, hat aber die Möglichkeit, ein anderes Verzeichnis in /var anzufordern, dessen Name mit dem in der Konfiguration angegebenen ĂŒbereinstimmt. Beispielsweise könnte durch das Anfordern von â/img.old/test.txtâ Zugang zum Verzeichnis âvar/images.old/test.txtâ gewĂ€hrt werden.
Die Analyse von Repositories auf GitHub hat gezeigt, dass die konfigurationsbedingten Fehler in nginx nach wie vor in realen Projekten vorkommen. Zum Beispiel wurde das Problem im Backend des Passwortmanagers Bitwarden identifiziert und könnte verwendet werden, um auf alle Dateien im Verzeichnis /etc/bitwarden zuzugreifen (Anfragen an /attachments wurden aus /etc/bitwarden/attachments/ zurĂŒckgegeben), einschlieĂlich der darin gespeicherten Datenbank mit Passwörtern âvault.dbâ, Zertifikat und Logs, fĂŒr deren Erhalt es ausreichte, die Anfragen â/attachments.. /vault.dbâ, â/attachments.. /identity.pfxâ, â/attachments.. /logs/api.logâ usw. zu senden.


Die Methode funktionierte auch mit dem Google HPC Toolkit, bei dem Anfragen an /static in das Verzeichnis â../hpc-toolkit/community/front-end/website/static/â umgeleitet wurden. Um auf die Datenbank mit dem privaten SchlĂŒssel und den Zugangsdaten zuzugreifen, konnte der Angreifer die Anfragen â/static.. /.secret_keyâ und â/static.. /db.sqlite3â senden.

Quelle: opennet.ru
