Apache httpd-da saytning asosiy katalogidan tashqariga kirish imkonini beruvchi yana bir zaiflik

Apache http serveri uchun yangi hujum vektori topildi, u 2.4.50 yangilanishida tuzatilmagan va saytning ildiz katalogidan tashqaridagi hududlardan fayllarga kirish imkonini beradi. Bundan tashqari, tadqiqotchilar ma'lum nostandart sozlamalar mavjud bo'lganda nafaqat tizim fayllarini o'qish, balki ularning kodini serverda masofadan turib bajarish imkonini beruvchi usulni topdilar. Muammo faqat 2.4.49 va 2.4.50 versiyalarida paydo bo'ladi; oldingi versiyalarga ta'sir qilmaydi. Yangi zaiflikni bartaraf etish uchun Apache httpd 2.4.51 tezda chiqarildi.

Asosiysi, yangi muammo (CVE-2021-42013) 2021 da asl zaiflikka (CVE-41773-2.4.49) butunlay o'xshaydi, yagona farq ".." belgilarining boshqa kodlanishidir. Xususan, 2.4.50-versiyasida nuqtani kodlash uchun “%2e” ketma-ketligidan foydalanish imkoniyati bloklangan, biroq ikki marta kodlash imkoniyati o‘tkazib yuborilgan – “%%32%65” ketma-ketligini belgilashda server uni dekodladi. "% 2e" ga, keyin esa "." ga, ya'ni. oldingi katalogga o'tish uchun "../" belgilari ".%%32%65/" sifatida kodlanishi mumkin.

Kodni bajarish orqali zaiflikdan foydalanishga kelsak, bu mod_cgi yoqilganda va CGI skriptlarini bajarishga ruxsat berilgan asosiy yo'ldan foydalanilganda mumkin (masalan, agar ScriptAlias ​​direktivasi yoqilgan bo'lsa yoki ExecCGI bayrog'i ko'rsatilgan bo'lsa). Variantlar ko'rsatmasi). Muvaffaqiyatli hujum uchun majburiy talab, shuningdek, /bin kabi bajariladigan fayllar bilan kataloglarga kirishni yoki Apache sozlamalarida fayl tizimi ildiziga “/” kirishni ta'minlashdir. Bunday kirish odatda berilmaganligi sababli, kodni bajarish hujumlari haqiqiy tizimlarga kam qo'llaniladi.

Shu bilan birga, http-server ishlayotgan foydalanuvchi tomonidan o'qilishi mumkin bo'lgan ixtiyoriy tizim fayllari va veb-skriptlarning manba matnlarini olish hujumi dolzarbligicha qolmoqda. Bunday hujumni amalga oshirish uchun saytda "Alias" yoki "ScriptAlias" direktivalari (DocumentRoot yetarli emas), masalan, "cgi-bin" yordamida sozlangan katalogga ega bo'lish kifoya.

Serverda “id” yordam dasturini ishga tushirish imkonini beruvchi ekspluatatsiyaga misol: curl 'http://192.168.0.1/cgi-bin/.%%32%65/.%%32%65/.%% 32%65/.%% 32%65/.%%32%65/bin/sh' —maʼlumotlar 'echo Content-Type: text/plain; aks-sado; id' uid = 1 (daemon) gid = 1 (daemon) guruhlari = 1 (daemon)

/etc/passwd mazmunini va veb-skriptlardan birini ko'rsatishga imkon beruvchi ekspluatatsiyalar misoli (skript kodini chiqarish uchun skript bajarilishi yoqilmagan “Alias” direktivasi orqali aniqlangan katalog ko'rsatilishi kerak. asosiy katalog sifatida): curl 'http://192.168.0.1 .32/cgi-bin/.%%65%32/.%%65%32/.%%65%32/.%%65%32/.% %65%192.168.0.1/etc/passwd' curl 'http: //32/aliaseddir/.%%65%32/.%%65%32/.%%65%32/.%%65%32/. %%65%2/usr/local/apacheXNUMX/cgi -bin/test.cgi'

Muammo asosan Fedora, Arch Linux va Gentoo kabi doimiy yangilanadigan distributivlarga hamda FreeBSD portlariga ta’sir qiladi. Debian, RHEL, Ubuntu va SUSE konservativ server tarqatishlarining barqaror tarmoqlaridagi paketlar zaiflikdan ta'sirlanmaydi. Agar kataloglarga kirish "hammasini rad etishni talab qilish" sozlamasi yordamida aniq rad etilsa, muammo yuzaga kelmaydi.

Manba: opennet.ru

a Izoh qo'shish