Nginx konfigurācijas ievainojamība ar nepareiziem aizstājvārdu bloķēšanas iestatījumiem

Daži serveri ar nginx joprojām ir neaizsargāti pret Nginx Alias Traversal tehniku, kas tika ierosināta Blackhat konferencē 2018. gadā un ļauj piekļūt failiem un direktorijiem, kas atrodas ārpus "alias" direktīvā norādītā saknes direktorija. Problēma parādās tikai konfigurācijās ar "alias" direktīvu, kas ievietota "location" blokā, kuras parametrs nebeidzas ar "/" rakstzīmi, bet "alias" beidzas ar "/".

Nginx konfigurācijas ievainojamība ar nepareiziem aizstājvārdu bloķēšanas iestatījumiem

Problēmas būtība ir tāda, ka faili blokiem ar aizstājvārdu direktīvu tiek doti, pievienojot pieprasīto ceļu, pēc tam saskaņojot to ar masku no atrašanās vietas direktīvas un izgriežot šajā maskā norādīto ceļa daļu. Iepriekš parādītajā ievainojamās konfigurācijas piemērā uzbrucējs var pieprasīt failu "/img../test.txt", un šis pieprasījums atbildīs maskai, kas norādīta atrašanās vietā "/img", pēc tam atlikušā aste "../". test.txt" tiks pievienots ceļam no aizstājvārdu direktīvas "/var/images/", un rezultātā tiks pieprasīts fails "/var/images/../test.txt". Tādējādi uzbrucēji var piekļūt visiem failiem direktorijā "/var", nevis tikai failiem "/var/images/", piemēram, lai lejupielādētu nginx žurnālu, varat nosūtīt pieprasījumu "/img../log/ nginx/ access.log".

Konfigurācijās, kurās aizstājvārda direktīvas vērtība nebeidzas ar "/" rakstzīmi (piemēram, "alias /var/images;"), uzbrucējs nevar pāriet uz vecākdirektoriju, bet var pieprasīt citu direktoriju mapē /var kura nosaukums sākas ar norādīto konfigurācijā. Piemēram, pieprasot "/img.old/test.txt", varat piekļūt direktorijam "var/images.old/test.txt".

GitHub krātuvju analīze parādīja, ka nginx konfigurācijas kļūdas, kas izraisa problēmu, joprojām tiek atrastas reālos projektos. Piemēram, Bitwarden paroļu pārvaldnieka aizmugursistēmā tika konstatēta problēma, un to varēja izmantot, lai piekļūtu visiem failiem direktorijā /etc/bitwarden (pieprasījumi /attachments tika izdoti no /etc/bitwarden/attachments/), ieskaitot tur glabāto datu bāzi ar parolēm “vault. db”, sertifikātu un žurnāliem, kuriem pietika nosūtīt pieprasījumus "/attachments../vault.db", "/attachments../identity.pfx", "/attachments ../logs/api.log" utt. .P.

Nginx konfigurācijas ievainojamība ar nepareiziem aizstājvārdu bloķēšanas iestatījumiem
Nginx konfigurācijas ievainojamība ar nepareiziem aizstājvārdu bloķēšanas iestatījumiem

Metode darbojās arī ar Google HPC Toolkit, kur /static pieprasījumi tika novirzīti uz direktoriju "../hpc-toolkit/community/front-end/website/static/". Lai iegūtu datu bāzi ar privāto atslēgu un akreditācijas datiem, uzbrucējs var nosūtīt vaicājumus "/static../.secret_key" un "/static../db.sqlite3".

Nginx konfigurācijas ievainojamība ar nepareiziem aizstājvārdu bloķēšanas iestatījumiem


Avots: opennet.ru

Pievieno komentāru