Yanlış takma ad blok ayarlarıyla Nginx yapılandırma güvenlik açığı

Nginx'e sahip bazı sunucular, 2018'deki Blackhat konferansında önerilen ve "alias" yönergesinde belirtilen kök dizinin dışında bulunan dosyalara ve dizinlere erişime izin veren Nginx Alias ​​\uXNUMXb\uXNUMXbTraversal tekniğine karşı savunmasız olmaya devam ediyor. Sorun yalnızca, parametresi "/" karakteriyle bitmeyen, "alias" ise "/" ile biten "konum" bloğunun içine bir "alias" yönergesi yerleştirilmiş yapılandırmalarda ortaya çıkar.

Yanlış takma ad blok ayarlarıyla Nginx yapılandırma güvenlik açığı

Sorunun özü, takma ad yönergesine sahip bloklar için dosyaların, konum yönergesindeki maske ile eşleştirildikten ve yolun bu maskede belirtilen kısmı kesildikten sonra istenen yolun eklenmesiyle verilmesidir. Yukarıda gösterilen savunmasız bir yapılandırma örneği için, bir saldırgan "/img../test.txt" dosyasını isteyebilir ve bu istek, "/img" konumunda belirtilen maskeyle eşleşir ve ardından kalan "../" kuyruğu test.txt", "/var/images/" diğer ad yönergesinden yola eklenecek ve sonuç olarak "/var/images/../test.txt" dosyası istenecektir. Böylece, saldırganlar yalnızca "/var/images/" içindeki dosyalara değil, "/var" dizinindeki herhangi bir dosyaya erişebilir, örneğin nginx günlüğünü indirmek için "/img../log/" isteğini gönderebilirsiniz. nginx/ erişim.log".

alias yönergesinin değerinin bir "/" karakteriyle bitmediği yapılandırmalarda (örneğin, "alias /var/images;"), saldırgan üst dizine geçemez, ancak /var içindeki başka bir dizini isteyebilir. adı yapılandırmada belirtilen ile başlayan. Örneğin, "/img.old/test.txt" isteğinde bulunarak "var/images.old/test.txt" dizinine erişebilirsiniz.

GitHub'daki depoların analizi, nginx yapılandırmasında soruna yol açan hataların gerçek projelerde hala bulunduğunu gösterdi. Örneğin, Bitwarden şifre yöneticisinin arka ucunda bir sorunun varlığı tespit edildi ve /etc/bitwarden dizinindeki tüm dosyalara erişmek için kullanılabilir (/attachments istekleri /etc/bitwarden/attachments/ adresinden yapılmıştır), "/attachments../vault.db", "/attachments../identity.pfx", "/attachments isteklerini göndermenin yeterli olduğu "vault.db" şifreleriyle orada depolanan veritabanı, sertifika ve günlükler dahil ../logs/api.log", vb. .P.

Yanlış takma ad blok ayarlarıyla Nginx yapılandırma güvenlik açığı
Yanlış takma ad blok ayarlarıyla Nginx yapılandırma güvenlik açığı

Yöntem, /statik isteklerin "../hpc-toolkit/community/front-end/website/static/" dizinine yönlendirildiği Google HPC Toolkit ile de çalıştı. Saldırgan, özel anahtar ve kimlik bilgileri içeren bir veritabanı elde etmek için "/static../.secret_key" ve "/static../db.sqlite3" sorguları gönderebilir.

Yanlış takma ad blok ayarlarıyla Nginx yapılandırma güvenlik açığı


Kaynak: opennet.ru

Yorum ekle