Satu lagi kelemahan dalam Apache httpd yang membenarkan akses di luar direktori akar tapak

Vektor serangan baharu telah ditemui untuk pelayan http Apache, yang kekal tidak diperbetulkan dalam kemas kini 2.4.50 dan membenarkan akses kepada fail dari kawasan di luar direktori akar tapak. Di samping itu, penyelidik telah menemui kaedah yang membolehkan, dengan adanya tetapan bukan standard tertentu, bukan sahaja untuk membaca fail sistem, tetapi juga untuk melaksanakan kod mereka dari jauh pada pelayan. Masalahnya hanya muncul dalam keluaran 2.4.49 dan 2.4.50; versi terdahulu tidak terjejas. Untuk menghapuskan kelemahan baharu, Apache httpd 2.4.51 telah dikeluarkan dengan cepat.

Pada terasnya, masalah baharu (CVE-2021-42013) adalah serupa sepenuhnya dengan kerentanan asal (CVE-2021-41773) dalam 2.4.49, satu-satunya perbezaan ialah pengekodan yang berbeza bagi aksara “..”. Khususnya, dalam keluaran 2.4.50 keupayaan untuk menggunakan urutan "%2e" untuk mengekod titik telah disekat, tetapi kemungkinan pengekodan berganda telah terlepas - apabila menentukan urutan "%%32%65", pelayan menyahkodnya ke dalam "%2e" dan kemudian ke dalam " .", i.e. aksara "../" untuk pergi ke direktori sebelumnya boleh dikodkan sebagai ".%%32%65/".

Bagi mengeksploitasi kelemahan melalui pelaksanaan kod, ini boleh dilakukan apabila mod_cgi didayakan dan laluan asas digunakan di mana pelaksanaan skrip CGI dibenarkan (contohnya, jika arahan ScriptAlias ​​didayakan atau bendera ExecCGI ditentukan dalam Arahan pilihan). Keperluan mandatori untuk serangan yang berjaya juga adalah untuk menyediakan akses kepada direktori dengan fail boleh laku secara eksplisit, seperti /bin, atau akses kepada akar sistem fail "/" dalam tetapan Apache. Memandangkan akses sedemikian biasanya tidak diberikan, serangan pelaksanaan kod mempunyai sedikit aplikasi kepada sistem sebenar.

Pada masa yang sama, serangan untuk mendapatkan kandungan fail sistem sewenang-wenangnya dan teks sumber skrip web, yang boleh dibaca oleh pengguna di mana pelayan http sedang berjalan, kekal relevan. Untuk melakukan serangan sedemikian, cukup untuk mempunyai direktori di tapak yang dikonfigurasikan menggunakan arahan "Alias" atau "ScriptAlias" (DocumentRoot tidak mencukupi), seperti "cgi-bin".

Contoh eksploitasi yang membolehkan anda melaksanakan utiliti “id” pada pelayan: curl 'http://192.168.0.1/cgi-bin/.%%32%65/.%%32%65/.%% 32%65/.%% 32%65/.%%32%65/bin/sh' —data 'echo Content-Type: text/plain; gema; id' uid=1(daemon) gid=1(daemon) kumpulan=1(daemon)

Contoh eksploitasi yang membolehkan anda memaparkan kandungan /etc/passwd dan salah satu skrip web (untuk mengeluarkan kod skrip, direktori yang ditakrifkan melalui arahan "Alias", yang pelaksanaan skrip tidak didayakan, mesti dinyatakan sebagai direktori asas): 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'

Masalah ini mempengaruhi pengedaran yang dikemas kini secara berterusan seperti Fedora, Arch Linux dan Gentoo, serta port FreeBSD. Pakej dalam cawangan stabil pengedaran pelayan konservatif Debian, RHEL, Ubuntu dan SUSE tidak terjejas oleh kelemahan tersebut. Masalahnya tidak berlaku jika akses kepada direktori ditolak secara eksplisit menggunakan tetapan "memerlukan semua ditolak".

Sumber: opennet.ru

Tambah komen