Az Nginx konfigurációk sebezhetősége, helytelen alias blokkbeállításokkal

Néhány nginx szerver továbbra is sebezhető az Nginx Alias Traversal technikával, amelyet a Blackhat konferencián ajánlottak 2018-ban, és lehetővé teszi fájlokhoz és könyvtárakhoz való hozzáférést, amelyek a megadott gyökérkönyvtáron kívül helyezkednek el az "alias" direktíva által. A probléma csak azokban a konfigurációkban jelentkezik, ahol az "alias" direktíva a "location" blokkban található, és a paramétere nem zárul le a "\/" karakterrel, míg az "alias" a "\/"-val zárul.

Az Nginx konfigurációk sebezhetősége, helytelen alias blokkbeállításokkal

A probléma lényege, hogy az alias direktívával rendelkező blokkok fájljait az elkért útvonal csatolásával szolgálják ki, miután az a lokáció direktíva ábécéjével lett párosítva, és az adott maszk szerint levágják az út egy részét. A fenti sebezhető konfiguráció példájaként a támadó kérheti az "\/img..\/test.txt" fájlt, és ez a kérés illeszkedni fog a lokáció maszkhoz, amely "\/img", majd a megmaradt "..\/test.txt" rész csatolva lesz az "alias" direktíva útvonalához "\/var\/images\/" és végül a "\/var\/images\/..\/test.txt" fájlt kérik le. Így a támadók hozzáférhetnek bármilyen fájlhoz a "\/var" könyvtárban, nem csak a "\/var\/images\/" könyvtár fájljaihoz, például az nginx napló betöltéséhez elegendő a kérés "\/img..\/log\/nginx\/access.log" elküldése.

Azokban a konfigurációkban, ahol az alias direktíva értéke nem zárul le "\/" karakterrel (például "alias \/var\/images;"), a támadó nem tud átmenni a szülői könyvtárba, de képes más könyvtárat kérni a \/var-on belül, amelynek neve azonos a konfigurációban megadottal. Például, ha a "\/img.old\/test.txt" fájlt kérdezik, hozzáférést nyerhetnek a "var\/images.old\/test.txt" könyvtárhoz.

A GitHub-on végzett repozitórium-elemzés azt mutatta, hogy a problémához vezető nginx beállítási hibák még mindig előfordulnak valódi projekteknél. Például, a probléma jelenlétét a Bitwarden jelszókezelő szerver oldalán észlelték, amely lehetővé tette az összes fájl hozzáférését a \/etc\/bitwarden könyvtárban (a kérdések a \/attachments-ből érkeztek a \/etc\/bitwarden\/attachments\/ból), beleértve a tárolt adatbázist is, mint a "vault.db", a tanúsítványt és a naplókat, amelyek megszerzéséhez elegendő volt a kérés elküldése: "\/attachments..\/vault.db", "\/attachments..\/identity.pfx", "\/attachments..\/logs\/api.log" stb.

Az Nginx konfigurációk sebezhetősége, helytelen alias blokkbeállításokkal
Az Nginx konfigurációk sebezhetősége, helytelen alias blokkbeállításokkal

A módszer a Google HPC Toolkit-tel is működött, amelyben a /static kérések a „.. /hpc-toolkit/community/front-end/website/static/” könyvtárba irányultak. A támadó a titkos kulccsal és bejelentkezési adatokkal rendelkező adatbázishoz az „ /static.. / .secret_key” és „ /static.. /db.sqlite3” kéréseket küldhetett el.

Az Nginx konfigurációk sebezhetősége, helytelen alias blokkbeállításokkal


Forrás: opennet.ru
Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster