Nginxi konfiguratsiooni haavatavus valede pseudonüümiploki sätetega

Mõned nginxiga serverid jäävad haavatavaks Nginx Alias Traversal tehnika suhtes, mida pakuti välja 2018. aasta Blackhati konverentsil ja mis võimaldab juurdepääsu failidele ja kataloogidele, mis asuvad väljaspool "aliase" direktiivis määratud juurkataloogi. Probleem ilmneb ainult konfiguratsioonides, kus ploki "location" sees on "alias" direktiiv, mille parameeter ei lõpe märgiga "/", samas kui "alias" lõpeb tähega "/".

Nginxi konfiguratsiooni haavatavus valede pseudonüümiploki sätetega

Probleemi olemus seisneb selles, et aliase direktiiviga plokkide failid antakse, lisades nõutud tee, pärast selle sobitamist asukohadirektiivi maskiga ja selles maskis määratud teeosa väljalõikamist. Ülaltoodud haavatava konfiguratsiooni näite puhul saab ründaja taotleda faili "/img../test.txt" ja see päring ühtib asukohas "/img" määratud maskiga, misjärel ülejäänud saba "../" test.txt" lisatakse teele aliase direktiivist "/var/images/" ja selle tulemusena küsitakse faili "/var/images/../test.txt". Seega pääsevad ründajad juurde kõikidele kataloogis "/var" olevatele failidele, mitte ainult kataloogis "/var/images/" olevatele failidele, näiteks nginxi logi allalaadimiseks võite saata päringu "/img../log/ nginx/ access.log".

Konfiguratsioonides, kus pseudonüümi direktiivi väärtus ei lõpe märgiga "/" (näiteks "alias /var/images;"), ei saa ründaja minna ülemkataloogi, vaid saab taotleda teist kataloogi kaustas /var mille nimi algab konfiguratsioonis määratud tähega. Näiteks kui taotlete faili "/img.old/test.txt", pääsete juurde kataloogi "var/images.old/test.txt".

GitHubi hoidlate analüüs näitas, et nginxi konfiguratsiooni vigu, mis põhjustavad probleemi, leitakse ikka veel pärisprojektides. Näiteks tuvastati probleemi olemasolu Bitwardeni paroolihalduri taustaprogrammis ja seda saab kasutada kõikidele kataloogis /etc/bitwarden olevatele failidele juurde pääsemiseks (päringud /attachments jaoks saadeti aadressilt /etc/bitwarden/attachments/), sealhulgas seal salvestatud andmebaas paroolidega “vault. db”, sertifikaat ja logid, mille jaoks piisas päringute saatmisest "/attachments../vault.db", "/attachments../identity.pfx", "/attachments ../logs/api.log" jne. .P.

Nginxi konfiguratsiooni haavatavus valede pseudonüümiploki sätetega
Nginxi konfiguratsiooni haavatavus valede pseudonüümiploki sätetega

Meetod töötas ka Google HPC Toolkitiga, kus /staatilised päringud suunati ümber kataloogi "../hpc-toolkit/community/front-end/website/static/". Privaatvõtme ja mandaatidega andmebaasi hankimiseks võib ründaja saata päringuid "/static../.secret_key" ja "/static../db.sqlite3".

Nginxi konfiguratsiooni haavatavus valede pseudonüümiploki sätetega


Allikas: opennet.ru

Lisa kommentaar