Vēl viena Apache httpd ievainojamība, kas ļauj piekļūt ārpus vietnes saknes direktorija

Apache http serverim ir atrasts jauns uzbrukuma vektors, kas palika nelabots atjauninājumā 2.4.50 un ļauj piekļūt failiem no apgabaliem ārpus vietnes saknes direktorija. Turklāt pētnieki ir atraduši metodi, kas ļauj noteiktu nestandarta iestatījumu klātbūtnē ne tikai nolasīt sistēmas failus, bet arī attālināti izpildīt to kodu serverī. Problēma parādās tikai laidienos 2.4.49 un 2.4.50; iepriekšējās versijas netiek ietekmētas. Lai novērstu jauno ievainojamību, Apache httpd 2.4.51 tika ātri izlaista.

Jaunā problēma (CVE-2021-42013) savā būtībā ir pilnībā līdzīga sākotnējai ievainojamībai (CVE-2021-41773) versijā 2.4.49, vienīgā atšķirība ir atšķirīgais “..” rakstzīmju kodējums. Konkrēti, laidienā 2.4.50 tika bloķēta iespēja izmantot secību "%2e" punkta kodēšanai, taču tika palaists garām dubultkodēšanas iespēja - norādot secību "%%32%65", serveris to atkodēja. uz "%2e" un pēc tam uz " .", t.i. rakstzīmes "../", lai pārietu uz iepriekšējo direktoriju, var tikt kodētas kā ".%%32%65/".

Kas attiecas uz ievainojamības izmantošanu, izpildot kodu, tas ir iespējams, ja ir iespējots mod_cgi un tiek izmantots bāzes ceļš, kurā ir atļauta CGI skriptu izpilde (piemēram, ja ir iespējota ScriptAlias direktīva vai ir norādīts ExecCGI karogs Opciju direktīva). Obligāta prasība veiksmīgam uzbrukumam ir arī nepārprotami nodrošināt piekļuvi direktorijiem ar izpildāmiem failiem, piemēram, /bin, vai piekļuvi failu sistēmas saknei “/” Apache iestatījumos. Tā kā šāda piekļuve parasti netiek piešķirta, koda izpildes uzbrukumiem reālām sistēmām ir maz pielietojuma.

Tajā pašā laikā joprojām aktuāls ir uzbrukums, lai iegūtu patvaļīgu sistēmas failu saturu un tīmekļa skriptu avota tekstus, kurus var lasīt lietotājs, kurā darbojas http serveris. Lai veiktu šādu uzbrukumu, pietiek ar to, ka vietnē ir konfigurēts direktorijs, izmantojot “Alias” vai “ScriptAlias” direktīvas (nepietiek ar DocumentRoot), piemēram, “cgi-bin”.

Ekspluatācijas piemērs, kas ļauj izpildīt utilītu “id” serverī: curl 'http://192.168.0.1/cgi-bin/.%%32%65/.%%32%65/.%% 32%65/.%% 32%65/.%%32%65/bin/sh' —data 'atbalss Satura veids: teksts/vienkāršs; atbalss; id' uid=1(dēmons) gid=1(dēmons) grupas=1(dēmons)

Ekspluatācijas piemērs, kas ļauj parādīt /etc/passwd saturu un vienu no tīmekļa skriptiem (lai izvadītu skripta kodu, ir jānorāda direktorijs, kas definēts ar "Alias" direktīvu, kuram skripta izpilde nav iespējota kā bāzes direktorijs): 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'

Problēma galvenokārt skar pastāvīgi atjauninātos izplatījumus, piemēram, Fedora, Arch Linux un Gentoo, kā arī FreeBSD portus. Konservatīvo serveru izplatījumu Debian, RHEL, Ubuntu un SUSE stabilajos zaros esošās pakotnes neaizsargātība neietekmē. Problēma nerodas, ja piekļuve direktorijiem ir skaidri liegta, izmantojot iestatījumu “Require all denied”.

Avots: opennet.ru

Pievieno komentāru