Ang kahinaan sa configuration ng Nginx na may maling setting ng alias block

Ang ilang mga server na may nginx ay nananatiling vulnerable sa Nginx Alias ​​​​Traversal technique, na iminungkahi sa Blackhat conference noong 2018 at nagbibigay-daan sa pag-access sa mga file at direktoryo na nasa labas ng root directory na tinukoy sa "alias" na direktiba. Ang problema ay lilitaw lamang sa mga pagsasaayos na may "alias" na direktiba na inilagay sa loob ng "lokasyon" na bloke, ang parameter na hindi nagtatapos sa isang "/" na karakter, habang ang "alias" ay nagtatapos sa "/".

Ang kahinaan sa configuration ng Nginx na may maling setting ng alias block

Ang kakanyahan ng problema ay ang mga file para sa mga bloke na may alias na direktiba ay ibinibigay sa pamamagitan ng paglakip sa hiniling na landas, pagkatapos na itugma ito sa mask mula sa direktiba ng lokasyon at putulin ang bahagi ng landas na tinukoy sa maskara na ito. Para sa halimbawa ng isang vulnerable na configuration na ipinapakita sa itaas, maaaring humiling ang isang attacker ng file na "/img../test.txt" at ang kahilingang ito ay tutugma sa mask na tinukoy sa lokasyon na "/img", pagkatapos nito ay ikakabit ang natitirang buntot na "../test.txt" sa path mula sa alias directive na "/var/images/" at bilang resulta ang file na "/var/images/". Kaya, maaaring ma-access ng mga umaatake ang anumang mga file sa direktoryo ng "/var", at hindi lamang ang mga file sa "/var/images/", halimbawa, upang i-download ang log ng nginx, maaari mong ipadala ang kahilingang "/img../log/nginx/access.log".

Sa mga pagsasaayos kung saan ang halaga ng alias na direktiba ay hindi nagtatapos sa isang "/" na character (halimbawa, "alias /var/images;"), hindi maaaring lumipat ang attacker sa parent directory, ngunit maaaring humiling ng isa pang direktoryo sa /var na ang pangalan ay nagsisimula sa tinukoy sa configuration. Halimbawa, sa pamamagitan ng paghiling ng "/img.old/test.txt" maaari mong ma-access ang direktoryo na "var/images.old/test.txt".

Ang isang pagsusuri sa mga repositoryo sa GitHub ay nagpakita na ang mga error sa configuration ng nginx na humahantong sa problema ay matatagpuan pa rin sa mga tunay na proyekto. Halimbawa, ang pagkakaroon ng problema ay nakita sa backend ng Bitwarden password manager at maaaring magamit upang ma-access ang lahat ng mga file sa /etc/bitwarden directory (mga kahilingan para sa /attachment ay inilabas mula sa /etc/bitwarden/attachments/), kasama ang database na nakaimbak doon na may mga password na "vault.db", isang sertipiko at mga log, kung saan sapat na upang magpadala ng mga kahilingan para sa /.f/.fx ". ”, β€œ/atta chments../logs/api.log" atbp.

Ang kahinaan sa configuration ng Nginx na may maling setting ng alias block
Ang kahinaan sa configuration ng Nginx na may maling setting ng alias block

Ang pamamaraan ay gumana rin sa Google HPC Toolkit, kung saan ang /static na mga kahilingan ay na-redirect sa "../hpc-toolkit/community/front-end/website/static/" na direktoryo. Upang makakuha ng database na may pribadong key at mga kredensyal, maaaring magpadala ang isang attacker ng mga query na "/static../.secret_key" at "/static../db.sqlite3".

Ang kahinaan sa configuration ng Nginx na may maling setting ng alias block


Pinagmulan: opennet.ru

Magdagdag ng komento