Друга уязвимост в Apache httpd, която позволява достъп извън основната директория на сайта

Открит е нов вектор за атака за http сървъра на Apache, който остана некоригиран в актуализация 2.4.50 и позволява достъп до файлове от области извън основната директория на сайта. Освен това изследователите са открили метод, който позволява при наличието на определени нестандартни настройки не само да се четат системни файлове, но и дистанционно да се изпълнява кодът им на сървъра. Проблемът се появява само във версии 2.4.49 и 2.4.50; по-ранните версии не са засегнати. За да се премахне новата уязвимост, Apache httpd 2.4.51 беше бързо пуснат.

В основата си новият проблем (CVE-2021-42013) е напълно подобен на оригиналната уязвимост (CVE-2021-41773) във 2.4.49, единствената разлика е различното кодиране на знаците „..” По-специално, във версия 2.4.50 възможността за използване на последователността "%2e" за кодиране на точка беше блокирана, но възможността за двойно кодиране беше пропусната - при посочване на последователността "%%32%65", сървърът я декодира в "%2e" и след това в " .", т.е. знаците "../" за преминаване към предишната директория могат да бъдат кодирани като ".%%32%65/".

Що се отнася до използването на уязвимостта чрез изпълнение на код, това е възможно, когато mod_cgi е активиран и се използва основният път, в който е разрешено изпълнение на CGI скриптове (например, ако директивата ScriptAlias ​​е активирана или флагът ExecCGI е посочен в Директива за опции). Задължително изискване за успешна атака е също изрично предоставяне на достъп до директории с изпълними файлове, като /bin, или достъп до корена на файловата система “/” в настройките на Apache. Тъй като такъв достъп обикновено не се предоставя, атаките с изпълнение на код имат малко приложение за реални системи.

В същото време атаката за получаване на съдържанието на произволни системни файлове и изходни текстове на уеб скриптове, четими от потребителя, под който работи http сървърът, остава актуална. За да извършите такава атака, е достатъчно да имате директория на сайта, конфигурирана с помощта на директивите „Alias“ или „ScriptAlias“ (DocumentRoot не е достатъчен), като например „cgi-bin“.

Пример за експлойт, който ви позволява да изпълните помощната програма „id“ на сървъра: 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; ехо; id’ uid=1(демон) gid=1(демон) групи=1(демон)

Пример за експлойти, които ви позволяват да показвате съдържанието на /etc/passwd и един от уеб скриптовете (за да изведете кода на скрипта, трябва да бъде посочена директорията, дефинирана чрез директивата „Псевдоним“, за която не е активирано изпълнение на скрипт като основна директория): 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'

Проблемът засяга главно непрекъснато актуализираните дистрибуции като Fedora, Arch Linux и Gentoo, както и портовете на FreeBSD. Пакетите в стабилните клонове на консервативните сървърни дистрибуции Debian, RHEL, Ubuntu и SUSE не са засегнати от уязвимостта. Проблемът не възниква, ако достъпът до директории е изрично отказан с помощта на настройката „изискване на всички отказани“.

Източник: opennet.ru

Добавяне на нов коментар