Noto'g'ri taxallus blok sozlamalari bilan Nginx konfiguratsiyasi zaifligi

Nginx-ga ega ba'zi serverlar 2018 yilda Blackhat konferentsiyasida taklif qilingan va "taxallus" direktivasida ko'rsatilgan ildiz katalogidan tashqarida joylashgan fayllar va kataloglarga kirish imkonini beruvchi Nginx Alias ​​Traversal texnikasiga nisbatan zaif bo'lib qolmoqda. Muammo faqat "joylashuv" bloki ichiga joylashtirilgan "taxallus" direktivasi bo'lgan konfiguratsiyalarda paydo bo'ladi, uning parametri "/" belgisi bilan tugamaydi, "taxallus" esa "/" bilan tugaydi.

Noto'g'ri taxallus blok sozlamalari bilan Nginx konfiguratsiyasi zaifligi

Muammoning mohiyati shundaki, taxallus direktivasiga ega bloklar uchun fayllar so'ralgan yo'lni biriktirib, uni joylashuv direktivasidagi niqob bilan moslashtirgandan so'ng va ushbu maskada ko'rsatilgan yo'l qismini kesib tashlagandan so'ng beriladi. Yuqorida ko'rsatilgan zaif konfiguratsiya misolida, tajovuzkor "/img../test.txt" faylini so'rashi mumkin va bu so'rov "/img" manzilida ko'rsatilgan niqobga mos keladi, keyin qolgan "../" test.txt" "/var/images/" taxallus direktivasidan yo'lga biriktiriladi va natijada "/var/images/../test.txt" fayli so'raladi. Shunday qilib, tajovuzkorlar faqat "/var/images/" dagi fayllarga emas, balki "/var" katalogidagi istalgan fayllarga kirishlari mumkin, masalan, nginx jurnalini yuklab olish uchun siz "/img../log/" so'rovini yuborishingiz mumkin. nginx/ access.log".

Taxallus direktivasi qiymati "/" belgisi bilan tugamaydigan konfiguratsiyalarda (masalan, "taxallus /var/images;") tajovuzkor asosiy katalogga o'zgartira olmaydi, lekin /var ichida boshqa katalogni so'rashi mumkin. nomi konfiguratsiyada ko'rsatilgandan boshlanadi. Masalan, "/img.old/test.txt" so'rovi orqali siz "var/images.old/test.txt" katalogiga kirishingiz mumkin.

GitHub-dagi omborlar tahlili shuni ko'rsatdiki, nginx konfiguratsiyasidagi muammoga olib keladigan xatolar hali ham haqiqiy loyihalarda uchraydi. Masalan, Bitwarden parol menejerining orqa tomonida muammo mavjudligi aniqlandi va u /etc/bitwarden katalogidagi barcha fayllarga kirish uchun ishlatilishi mumkin (/ilovalar uchun so'rovlar /etc/bitwarden/attachments/ saytidan berilgan), shu jumladan, "vault.db", sertifikat va jurnallar parollari bilan saqlanadigan ma'lumotlar bazasi, buning uchun "/attachments../vault.db", "/attachments../identity.pfx", "/attachments" so'rovlarini yuborish kifoya edi. ../logs/api.log" va hokazo. .P.

Noto'g'ri taxallus blok sozlamalari bilan Nginx konfiguratsiyasi zaifligi
Noto'g'ri taxallus blok sozlamalari bilan Nginx konfiguratsiyasi zaifligi

Usul Google HPC Toolkit bilan ham ishlagan, u erda /statik so'rovlar "../hpc-toolkit/community/front-end/website/static/" katalogiga yo'naltirilgan. Maxfiy kalit va hisob ma'lumotlariga ega ma'lumotlar bazasini olish uchun tajovuzkor "/static../.secret_key" va "/static../db.sqlite3" so'rovlarini yuborishi mumkin.

Noto'g'ri taxallus blok sozlamalari bilan Nginx konfiguratsiyasi zaifligi


Manba: opennet.ru

a Izoh qo'shish