Kitas Apache httpd pažeidžiamumas, leidžiantis pasiekti už svetainės šakninio katalogo ribų

Buvo rastas naujas „Apache http“ serverio atakos vektorius, kuris liko nepataisytas 2.4.50 atnaujinime ir leidžia pasiekti failus iš sričių, esančių už svetainės šakninio katalogo. Be to, mokslininkai surado metodą, leidžiantį, esant tam tikriems nestandartiniams nustatymams, ne tik nuskaityti sistemos failus, bet ir nuotoliniu būdu vykdyti jų kodą serveryje. Problema atsiranda tik 2.4.49 ir ​​2.4.50 leidimuose; ankstesnėms versijoms tai neturi įtakos. Siekiant pašalinti naują pažeidžiamumą, buvo greitai išleista Apache httpd 2.4.51.

Iš esmės nauja problema (CVE-2021-42013) yra visiškai panaši į pradinį pažeidžiamumą (CVE-2021-41773) 2.4.49 versijoje, vienintelis skirtumas yra kitokia „..“ simbolių koduotė. Konkrečiai, 2.4.50 leidime buvo užblokuota galimybė naudoti seką „%2e“ taškui koduoti, tačiau buvo praleista dvigubo kodavimo galimybė – nurodant seką „%%32%65“, serveris ją iššifravo. į „%2e“, o paskui į „ .“, t.y. "../" simboliai, norint pereiti į ankstesnį katalogą, gali būti užkoduoti kaip ".%%32%65/".

Kalbant apie pažeidžiamumo išnaudojimą vykdant kodą, tai įmanoma, kai įjungtas mod_cgi ir naudojamas bazinis kelias, kuriame leidžiama vykdyti CGI scenarijus (pavyzdžiui, jei įjungta „ScriptAlias“ direktyva arba „ExecCGI“ vėliavėlė nurodyta Opcionų direktyva). Privalomas sėkmingos atakos reikalavimas taip pat yra aiškiai suteikti prieigą prie katalogų su vykdomaisiais failais, pvz., /bin, arba prieigą prie failų sistemos šaknies „/“ „Apache“ nustatymuose. Kadangi tokia prieiga paprastai nesuteikiama, kodo vykdymo atakos yra mažai taikomos tikrosioms sistemoms.

Tuo pat metu ataka, skirta gauti savavališkų sistemos failų turinį ir žiniatinklio scenarijų šaltinio tekstus, kuriuos vartotojas gali perskaityti, pagal kurį veikia http serveris, išlieka aktualus. Norint įvykdyti tokią ataką, svetainėje pakanka turėti katalogą, sukonfigūruotą naudojant „Alias“ arba „ScriptAlias“ direktyvas (nepakanka „DocumentRoot“), pvz., „cgi-bin“.

Išnaudojimo, leidžiančio paleisti „id“ priemonę serveryje, pavyzdys: curl 'http://192.168.0.1/cgi-bin/.%%32%65/.%%32%65/.%% 32%65/.%% 32%65/.%%32%65/bin/sh' —duomenys 'echo Turinio tipas: tekstas/paprastas; aidas; id' uid=1 (demonas) gid=1 (demonas) grupės = 1 (demonas)

Išnaudojimų, leidžiančių rodyti /etc/passwd turinį ir vieną iš žiniatinklio scenarijų, pavyzdys (norint išvesti scenarijaus kodą, turi būti nurodytas per „Alias“ direktyvą apibrėžtas katalogas, kuriam neįjungtas scenarijaus vykdymas kaip bazinis katalogas): 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'

Problema daugiausia paveikia nuolat atnaujinamus platinimus, tokius kaip Fedora, Arch Linux ir Gentoo, taip pat FreeBSD prievadus. Konservatyvių serverių paskirstymo Debian, RHEL, Ubuntu ir SUSE stabilių šakų paketams pažeidžiamumas įtakos neturi. Problema nekyla, jei prieiga prie katalogų yra aiškiai uždrausta naudojant nustatymą „reikalauti visų atmesti“.

Šaltinis: opennet.ru

Добавить комментарий