Ranljivost konfiguracije Nginx z nepravilnimi nastavitvami bloka vzdevkov

Nekateri strežniki z nginxom ostajajo ranljivi za tehniko Nginx Alias ​​​​Traversal, ki je bila predlagana na konferenci Blackhat leta 2018 in omogoča dostop do datotek in imenikov, ki se nahajajo zunaj korenskega imenika, določenega v direktivi "alias". Težava se pojavi le v konfiguracijah z direktivo "alias" znotraj bloka "location", katere parameter se ne konča z znakom "/", medtem ko se "alias" konča z "/".

Ranljivost konfiguracije Nginx z nepravilnimi nastavitvami bloka vzdevkov

Bistvo problema je v tem, da se datoteke za bloke z direktivo vzdevka podajo tako, da se pripne zahtevana pot, potem ko se le-ta uskladi z masko iz direktive lokacije in izreže del poti, ki je navedena v tej maski. Za primer ranljive konfiguracije, prikazane zgoraj, lahko napadalec zahteva datoteko "/img../test.txt" in ta zahteva se bo ujemala z masko, navedeno na lokaciji "/img", po kateri bo preostali rep "../test.txt" pritrjen na pot iz direktive vzdevka "/var/images/" in posledično bo zahtevana datoteka "/var/images/../test.txt". Tako lahko napadalci dostopajo do katere koli datoteke v imeniku »/var« in ne le do datotek v »/var/images/«, na primer, za prenos dnevnika nginx lahko pošljete zahtevo »/img../log/nginx/access.log«.

V konfiguracijah, v katerih se vrednost direktive vzdevka ne konča z znakom "/" (na primer "alias /var/images;"), napadalec ne more preklopiti v nadrejeni imenik, lahko pa zahteva drug imenik v /var, katerega ime se začne s tistim, določenim v konfiguraciji. Na primer, z zahtevo "/img.old/test.txt" lahko dostopate do imenika "var/images.old/test.txt".

Analiza repozitorijev na GitHubu je pokazala, da se napake v konfiguraciji nginx, ki vodijo do težave, še vedno najdejo v realnih projektih. Na primer, prisotnost težave je bila zaznana v ozadju upravitelja gesel Bitwarden in jo je bilo mogoče uporabiti za dostop do vseh datotek v imeniku /etc/bitwarden (zahteve za /attachments so bile izdane iz /etc/bitwarden/attachments/), vključno s tam shranjeno bazo podatkov z gesli »vault.db«, potrdilom in dnevniki, za katere je bilo dovolj poslati zahteve »/attachments../vault.db«, »/attachments. ./identity.pfx", "/atta chments../logs/api.log" itd.

Ranljivost konfiguracije Nginx z nepravilnimi nastavitvami bloka vzdevkov
Ranljivost konfiguracije Nginx z nepravilnimi nastavitvami bloka vzdevkov

Metoda je delovala tudi z Google HPC Toolkit, kjer so bile /statične zahteve preusmerjene v imenik »../hpc-toolkit/community/front-end/website/static/«. Za pridobitev baze podatkov z zasebnim ključem in poverilnicami lahko napadalec pošlje poizvedbi "/static../.secret_key" in "/static../db.sqlite3".

Ranljivost konfiguracije Nginx z nepravilnimi nastavitvami bloka vzdevkov


Vir: opennet.ru

Dodaj komentar