Nginx ilə bəzi serverlər 2018-ci ildə Blackhat konfransında təklif edilən və "ləqəb" direktivində göstərilən kök kataloqdan kənarda yerləşən fayl və qovluqlara giriş imkanı verən Nginx Alias Traversal texnikasına qarşı həssas olaraq qalır. Problem yalnız "yer" blokunun daxilində yerləşdirilmiş "ləqəb" direktivi olan konfiqurasiyalarda görünür, onun parametri "/" simvolu ilə bitmir, "ləqəb" isə "/" ilə bitir.
Problemin mahiyyəti ondan ibarətdir ki, ləqəb direktivi olan bloklar üçün fayllar tələb olunan yolu əlavə etməklə, onu yer direktivindən maska ilə uyğunlaşdırmaqla və bu maskada göstərilən yolun hissəsini kəsdikdən sonra verilir. Yuxarıda göstərilən həssas konfiqurasiya nümunəsi üçün təcavüzkar "/img../test.txt" faylını tələb edə bilər və bu sorğu "/img" yerində göstərilən maska ilə uyğunlaşacaq, bundan sonra qalan "../" test.txt" "/var/images/" ləqəb direktivindən yola əlavə olunacaq və nəticədə "/var/images/../test.txt" faylı tələb olunacaq. Beləliklə, təcavüzkarlar yalnız "/var/images/"dakı fayllara deyil, "/var" kataloqundakı istənilən fayllara daxil ola bilər, məsələn, nginx jurnalını yükləmək üçün "/img../log/" sorğusunu göndərə bilərsiniz. nginx/ access.log".
Təxəllüs direktivinin dəyərinin "/" simvolu ilə bitmədiyi konfiqurasiyalarda (məsələn, "ləqəb /var/images;") təcavüzkar əsas kataloqa keçə bilməz, lakin /var içərisində başqa kataloq tələb edə bilər. adı konfiqurasiyada göstərilən ilə başlayan. Məsələn, "/img.old/test.txt" sorğusu ilə siz "var/images.old/test.txt" qovluğuna daxil ola bilərsiniz.
GitHub-da depoların təhlili göstərdi ki, nginx konfiqurasiyasında problemə səbəb olan xətalara hələ də real layihələrdə rast gəlinir. Məsələn, Bitwarden parol menecerinin arxa hissəsində problemin olması aşkar edildi və /etc/bitwarden qovluğundakı bütün fayllara daxil olmaq üçün istifadə edilə bilər (/atchments üçün sorğular /etc/bitwarden/attachments/ saytından verilmişdir), "/attachments../vault.db", "/attachments../identity.pfx", "/attachments" sorğularını göndərmək kifayət olan "vault. db", sertifikat və jurnallarla orada saxlanılan verilənlər bazası daxil olmaqla. ../logs/api.log" və s. .P.
Metod, həmçinin /statik sorğuların "../hpc-toolkit/community/front-end/website/static/" qovluğuna yönləndirildiyi Google HPC Toolbar ilə də işləyirdi. Şəxsi açar və etimadnamələri olan verilənlər bazası əldə etmək üçün təcavüzkar "/static../.secret_key" və "/static../db.sqlite3" sorğularını göndərə bilər.
Mənbə: opennet.ru