Ευπάθεια διαμόρφωσης Nginx με εσφαλμένες ρυθμίσεις μπλοκ ψευδωνύμου

Ορισμένοι διακομιστές με nginx παραμένουν ευάλωτοι στην τεχνική Nginx Alias ​​​​Traversal, η οποία προτάθηκε στο συνέδριο Blackhat το 2018 και επιτρέπει την πρόσβαση σε αρχεία και καταλόγους που βρίσκονται εκτός του ριζικού καταλόγου που καθορίζεται στην οδηγία "ψευδώνυμο". Το πρόβλημα εμφανίζεται μόνο σε διαμορφώσεις με μια οδηγία "alias" τοποθετημένη μέσα στο μπλοκ "location", η παράμετρος της οποίας δεν τελειώνει με χαρακτήρα "/", ενώ το "alias" τελειώνει με "/".

Ευπάθεια διαμόρφωσης Nginx με εσφαλμένες ρυθμίσεις μπλοκ ψευδωνύμου

Η ουσία του προβλήματος είναι ότι τα αρχεία για μπλοκ με την οδηγία ψευδωνύμου δίνονται επισυνάπτοντας την απαιτούμενη διαδρομή, αφού την αντιστοιχίσετε με τη μάσκα από την οδηγία τοποθεσίας και κόψετε το τμήμα της διαδρομής που καθορίζεται σε αυτήν τη μάσκα. Για το παράδειγμα μιας ευάλωτης διαμόρφωσης που φαίνεται παραπάνω, ένας εισβολέας μπορεί να ζητήσει το αρχείο "/img../test.txt" και αυτό το αίτημα θα ταιριάζει με τη μάσκα που καθορίζεται στη θέση "/img", μετά την οποία η υπόλοιπη ουρά "../test.txt" θα προσαρτηθεί στη διαδρομή από την οδηγία ψευδώνυμου "/var/images/" και ως αποτέλεσμα θα δοκιμαστεί το αρχείο request./images/./vart. Έτσι, οι εισβολείς μπορούν να έχουν πρόσβαση σε οποιαδήποτε αρχεία στον κατάλογο "/var" και όχι μόνο στα αρχεία στο "/var/images/", για παράδειγμα, για να κατεβάσουν το αρχείο καταγραφής nginx, μπορείτε να στείλετε το αίτημα "/img../log/nginx/access.log".

Σε διαμορφώσεις στις οποίες η τιμή της οδηγίας για το ψευδώνυμο δεν τελειώνει με χαρακτήρα "/" (για παράδειγμα, "ψευδώνυμο /var/images;"), ο εισβολέας δεν μπορεί να αλλάξει στον γονικό κατάλογο, αλλά μπορεί να ζητήσει έναν άλλο κατάλογο στο /var του οποίου το όνομα αρχίζει με αυτό που καθορίζεται στη διαμόρφωση. Για παράδειγμα, ζητώντας "/img.old/test.txt" μπορείτε να αποκτήσετε πρόσβαση στον κατάλογο "var/images.old/test.txt".

Μια ανάλυση των αποθετηρίων στο GitHub έδειξε ότι τα σφάλματα στη διαμόρφωση του nginx που οδηγούν στο πρόβλημα εξακολουθούν να βρίσκονται σε πραγματικά έργα. Για παράδειγμα, η παρουσία ενός προβλήματος εντοπίστηκε στο backend της διαχείρισης κωδικών πρόσβασης Bitwarden και θα μπορούσε να χρησιμοποιηθεί για πρόσβαση σε όλα τα αρχεία στον κατάλογο /etc/bitwarden (αιτήματα για /attachments εκδόθηκαν από το /etc/bitwarden/attachments/), συμπεριλαμβανομένης της βάσης δεδομένων που είναι αποθηκευμένη εκεί με κωδικούς πρόσβασης "vault.db", ένα πιστοποιητικό και αρχεία καταγραφής sendach./atult, για τα οποία ήταν αρκετά για να ./identity.pfx", "/atta chments../logs/api.log" κ.λπ.

Ευπάθεια διαμόρφωσης Nginx με εσφαλμένες ρυθμίσεις μπλοκ ψευδωνύμου
Ευπάθεια διαμόρφωσης Nginx με εσφαλμένες ρυθμίσεις μπλοκ ψευδωνύμου

Η μέθοδος λειτουργούσε επίσης με το Google HPC Toolkit, όπου τα /static αιτήματα ανακατευθύνθηκαν στον κατάλογο "../hpc-toolkit/community/front-end/website/static/". Για να αποκτήσει μια βάση δεδομένων με ιδιωτικό κλειδί και διαπιστευτήρια, ένας εισβολέας θα μπορούσε να στείλει ερωτήματα "/static../.secret_key" και "/static../db.sqlite3".

Ευπάθεια διαμόρφωσης Nginx με εσφαλμένες ρυθμίσεις μπλοκ ψευδωνύμου


Πηγή: opennet.ru

Προσθέστε ένα σχόλιο