Сайттың түбірлік каталогынан тыс кіруге мүмкіндік беретін Apache httpd жүйесіндегі тағы бір осалдық

Apache http сервері үшін жаңа шабуыл векторы табылды, ол 2.4.50 жаңартуында түзетілмей қалды және сайттың түбірлік каталогынан тыс аймақтардағы файлдарға қол жеткізуге мүмкіндік береді. Сонымен қатар, зерттеушілер белгілі бір стандартты емес параметрлер болған жағдайда жүйелік файлдарды оқып қана қоймай, серверде олардың кодын қашықтан орындауға мүмкіндік беретін әдісті тапты. Мәселе тек 2.4.49 және 2.4.50 шығарылымдарында пайда болады, бұрынғы нұсқаларға әсер етпейді. Жаңа осалдықты жою үшін Apache httpd 2.4.51 жылдам шығарылды.

Негізінде жаңа мәселе (CVE-2021-42013) 2021 нұсқасындағы бастапқы осалдыққа (CVE-41773-2.4.49) толығымен ұқсайды, жалғыз айырмашылық – «..» таңбаларының басқа кодталуы. Атап айтқанда, 2.4.50 шығарылымында нүктені кодтау үшін «% 2e» тізбегін пайдалану мүмкіндігі бұғатталды, бірақ қосарланған кодтау мүмкіндігін жіберіп алды - «%%32%65» тізбегін көрсету кезінде сервер оны декодтаудан шығарды. "% 2e" ішіне, содан кейін " .", яғни. алдыңғы каталогқа өту үшін "../" таңбаларын ".%%32%65/" ретінде кодтауға болады.

Кодты орындау арқылы осалдықты пайдалануға келетін болсақ, бұл mod_cgi қосылғанда және CGI сценарийлерін орындауға рұқсат етілген негізгі жол пайдаланылғанда мүмкін болады (мысалы, егер ScriptAlias ​​директивасы қосылған болса немесе ExecCGI жалауы опциялар директивасы). Сәтті шабуылдың міндетті талабы сонымен қатар /bin сияқты орындалатын файлдары бар каталогтарға қол жеткізуді немесе Apache параметрлеріндегі «/» файлдық жүйе түбіріне қол жеткізуді қамтамасыз ету болып табылады. Мұндай рұқсат әдетте берілмейтіндіктен, кодты орындау шабуылдарының нақты жүйелерге қолданбасы аз.

Сонымен қатар, http сервері жұмыс істеп тұрған пайдаланушы оқи алатын еркін жүйелік файлдардың мазмұнын және веб-скрипттердің бастапқы мәтіндерін алу шабуылы өзекті болып қала береді. Мұндай шабуылды жүзеге асыру үшін сайтта «cgi-bin» сияқты «Lias» немесе «ScriptAlias» директивалары (DocumentRoot жеткіліксіз) арқылы конфигурацияланған каталог болуы жеткілікті.

Серверде «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

пікір қалдыру