Ranjivost konfiguracije Nginxa sa pogrešnim postavkama bloka alijasa

Neki Nginx serveri su i dalje ranjivi na tehniku ​​Nginx Alias ​​Traversal, koja je predložena na Blackhat konferenciji još 2018. godine i koja omogućava pristup datotekama i direktorijima koji se nalaze izvan korijenskog direktorija navedenog u “alias” direktivi. Problem se pojavljuje samo u konfiguracijama sa "alias" direktivom smještenom unutar bloka "location" čiji se parametar ne završava znakom "/", dok "alias" završava sa "/".

Ranjivost konfiguracije Nginxa sa pogrešnim postavkama bloka alijasa

Suština problema je u tome što se fajlovi za blokove sa alias direktivom serviraju tako što se prikače tražena putanja, nakon što se uporedi sa maskom iz direktive lokacije i iseče deo putanje koji je naveden u ovoj maski. Za primjer ranjive konfiguracije prikazan gore, napadač može zatražiti datoteku “/img../test.txt” i ovaj zahtjev će potpasti pod masku “/img” navedenu na lokaciji, nakon čega ostaje rep “.. /test.txt” će biti pridružen putanji iz alias direktive “/var/images/” i na kraju će zatražiti datoteku “/var/images/../test.txt”. Dakle, napadači mogu pristupiti svim datotekama u direktoriju “/var”, a ne samo datotekama u “/var/images/”, na primjer, da biste preuzeli nginx log, možete poslati zahtjev “/img../log/ nginx/ access.log".

U konfiguracijama u kojima se vrijednost alias direktive ne završava znakom "/" (na primjer, "alias /var/images;"), napadač ne može promijeniti u nadređeni direktorij, ali može zatražiti drugi direktorij u /var. čije ime počinje sa istim navedenim u konfiguraciji. Na primjer, zahtjevom za "/img.old/test.txt" možete pristupiti direktoriju "var/images.old/test.txt".

Analiza repozitorija na GitHubu pokazala je da se greške u nginx konfiguraciji koje dovode do problema i dalje javljaju u stvarnim projektima. Na primjer, problem je identificiran u pozadini upravitelja lozinki Bitwarden i mogao bi se koristiti za pristup svim datotekama u /etc/bitwarden direktoriju (/attachments zahtjevi su izdati iz /etc/bitwarden/attachments/), uključujući i „trezor .db", certifikat i logove, za dobijanje kojih je bilo dovoljno poslati zahtjeve "/attachments../vault.db", "/attachments../identity.pfx", "/attachments../logs/api.log ", itd. .P.

Ranjivost konfiguracije Nginxa sa pogrešnim postavkama bloka alijasa
Ranjivost konfiguracije Nginxa sa pogrešnim postavkama bloka alijasa

Metoda je također radila sa Google HPC Toolkit-om, koji je preusmjerio /statičke zahtjeve na direktorij "../hpc-toolkit/community/front-end/website/static/". Da bi dobio bazu podataka sa privatnim ključem i vjerodajnicama, napadač bi mogao poslati zahtjeve “/static../.secret_key” i “/static../db.sqlite3”.

Ranjivost konfiguracije Nginxa sa pogrešnim postavkama bloka alijasa


izvor: opennet.ru

Dodajte komentar