WordPress 7.1.1 rregullon zinxhirin Click2Shell drejt ekzekutimit të kodit në distancë
Imazh i krijuar me IA

WordPress 7.1.1 rregullon zinxhirin Click2Shell drejt ekzekutimit të kodit në distancë

WordPress 7.1.1 rregullon Click2Shell, një dobësi që kthente një klikim nga administratori në një shell në distancë në faqet që përdornin një temë të cenueshme.

WordPress 7.1.1 ka rregulluar një dobësi që mund të lejonte një klikim të vetëm nga një administrator i loguar të kthehej në një shell funksional në distancë në server, sipas një analize të botuar nga Patchstack. Dobësia, e quajtur Click2Shell, u raportua në mënyrë të përgjegjshme nga Paulos Yibelo i pwn.ai dhe u mbyll në publikimin e WordPress të 17 shtatorit, me shkrimin e Patchstack nga studiuesi i sigurisë Chazz Wolcott të botuar më 18 shtator. Patchstack deklaron se klientët e tij janë të mbrojtur nga dobësia dhe rekomandon që të gjithë të tjerët të përditësojnë menjëherë në versionin më të fundit të WordPress.

Bug-u është më pak një gabim i vetëm dhe më shumë një zinxhir. Patchstack e përshkruan atë si një Cross-Site Request Forgery (CSRF, një mashtrim që bën që shfletuesi i loguar i viktimës të dërgojë një kërkesë që viktima nuk e ka pasur ndërmend) të kombinuar me një injeksion selektori (karaktere shtesë të futur në kodin që kërkon elementët në një faqe, kështu që gjen diçka tjetër nga sa synohej). Asnjëra dobësi nuk është dramatike më vete. Të lidhura bashkë, ato e kthejnë një klikim të vetëm në kod që ekzekutohet në serverin e faqes.

Mekanizmi qëndron në mënyrën se si WordPress trajton temat. Administratorët mund të shikojnë paraprakisht ose të instalojnë një temë direkt nga katalogu i WordPress.org brenda panelit të administrimit, dhe ky proces mban slug-un e temës, emrin e saj të shkurtër identifikues, në URL. Sipas Patchstack, i njëjti vlerë lexohet më pas dy herë nga dy pjesë të ndryshme kodi, dhe të dyja nuk bien dakord se si ta trajtojnë atë. Në anën e serverit, API-ja e Temave të WordPress.org e pastron vlerën dhe heq karakteret shtesë, kështu që një varg i ndërtuar si twentytwenty"]> kthehet në twentytwenty deri në momentin që API-ja përgjigjet. Në anën e klientit, JavaScript i wp-admin merr të njëjtën vlerë të papërpunuar dhe e hedh direkt në një varg selektori jQuery, pa asnjë pastrim. jQuery është një bibliotekë JavaScript e përdorur gjerësisht që ndihmon faqet të gjejnë dhe modifikojnë elementët. Ky mospërputhje është e gjithë dobësia: një slug i ndërtuar posaçërisht mund ta bindë faqen se personi që e shikon klikoi Instalo në një temë krejtësisht të palidhur.

Më vete, një temë e instaluar në heshtje por jo aktive nuk është rrezik i madh. Siç vëren Patchstack, pa u aktivizuar në WordPress një temë ose plugin joaktiv është në thelb inert. Ka një moment kur një temë joaktive ekzekutohet, dhe ky është kur shikohet paraprakisht në WordPress Customizer. Zinxhiri i plotë i ndërtuar nga pwn.ai përdori një temë reale katalogu, Mobile Repair Zone 2.5.4, si fazën e dytë. Së pari URL-ja e ndërtuar instalon temën, pastaj një lidhje pasuese ngarkon Customizer me Mobile Repair Zone aktive. Kjo bën që skedari functions.php i temës të ekzekutohet dhe të regjistrojë grepat e tij, përfshirë një trajtues AJAX që pranonte një URL shkarkimi plugin pa kontroll nonce (një nonce është një kod njëherësh që provon se një kërkesë erdhi nga sesioni juaj) dhe pa asnjë kontroll leje. T'i japësh këtij veprimi një URL që tregon në një skedar ZIP në pronësi të sulmuesit do të thotë që WordPress e trajton arkivin keqdashës si një plugin të zakonshëm, e shkarkon dhe e ekzekuton në server. Ky është hapi që e ndryshon rezultatin nga një temë joaktive që shfaqet në një sulmues që mban një shell funksional.

Patchstack është i qartë se ky nuk është një sulm drive-by, dhe dallimi ka rëndësi. Të lexosh "nuk nevojitet llogari sulmuesi" dhe "ekzekutim kodi në distancë" radhazi mund të tingëllojë sikur çdo vizitor mund ta shkaktojë, por sulmuesi duhet ta bëjë një administrator faqeje të ngarkojë një URL të ndërtuar. Një vizitor i zakonshëm nuk mund ta shkaktojë, dhe as një llogari më e privilegjuar si Autor ose Redaktor. Ka dy rrugë. E para është një sulm phishing i synuar kundër një administratori specifik që është i loguar dhe ndërvepron me lidhjen keqdashëse. E dyta është një injeksion XSS (Cross-Site Scripting, një dobësi që lejon sulmuesin të vendosë kodin e tij në një faqe, ku ai ekzekutohet në shfletuesin e kujtdo që e shikon) tashmë i pranishëm në faqe, i cili e nis kërkesën automatikisht kur një administrator shikon faqen. Kjo rrugë e dytë supozon se sulmuesi tashmë kishte një pikëmbështetje, që do të thotë se ndonjë komponent tjetër duhej të ishte i cenueshëm ndaj XSS në radhë të parë, dhe Click2Shell do të ishte vetëm një nga disa mënyra për ta shfrytëzuar atë. Rezultati i plotë i ekzekutimit të kodit në distancë varet gjithashtu nga aftësia e faqes së synuar për të instaluar një temë të cenueshme. Aty ku temat e reja nuk mund të instalohen, për shembull kur DISALLOW_FILE_MODS është aktivizuar, injeksioni mund të ndodhë akoma, por ndikimi i tij nuk shtrihet në instalimin e temave ose plugineve të reja në faqe.

WordPress 7.1.1 e mbyll çështjen me dy lëvizje. Ai e kufizon selektorin e cenueshëm në elementët e vërtetë .theme në dokument, dhe e kalon slug-un nëpër $.escapeSelector() përpara se vlera të hyjë në vargun e selektorit. Të dhënat tani trajtohen si tekst i mirëfilltë dhe jo si të dhëna strukturore, kështu që nuk mund të klikojë më butona vetë. Pika më e gjerë e Patchstack është se mësimi nuk ka të bëjë aq shumë me këtë selektor sa me formën e bug-ut: kur një parametër URL përpunohet në backend dhe në frontend, ai duhet pastruar në të dyja anët, dhe ky model mund të shfaqet kudo ku dy pjesë të ndryshme kodi analizojnë të njëjtin input në mënyrë të pavarur.

Për pronarët e faqeve, përfundimi praktik është i njëjtë si për shumicën e rregullimeve të WordPress. Përditësimet e bërthamës janë aty ku zbatohet ky patch, dhe një përditësim i shtyrë është një dritare që mbetet e hapur. Aty ku përditshmëria e patch-imit është pjesa e vështirë, AEU Hosting, shërbimi ynë i hostimit të menaxhuar të WordPress, mban shtresën e platformës WordPress të mirëmbajtur për faqet që drejton, dhe detajet janë paraqitur në albhosting.eu. Zakoni i zgjedhjes së temave ka gjithashtu rëndësi: një temë e papërdorur që mbetet e instaluar është një gjë më shumë që mund të bëhet të ekzekutohet.

Click2Shell gjithashtu ilustron pse etiketat e ashpërsisë mund të mashtrojnë. Dy dobësi që secila do të shpërfaqej, një kërkesë që shfletuesi nuk duhej ta dërgonte dhe një varg që duhej të ishte shpëtuar, bëhen një shell në anën e serverit kur kombinohen, dhe nuk kërkohet llogari sulmuesi për asnjërën gjysmë. Leximi i ndershëm i raportit të Patchstack është se shfrytëzimi ishte real, rregullimi është botuar, dhe parakushti është njerëzor: një administrator duhet të klikojë, ose diçka tjetër në faqe duhet të shërbejë tashmë kod të injektuar.

Si të Mbroheni

  1. Hyni në panelin tuaj të WordPress, hapni ekranin e Përditësimeve dhe sigurohuni që po përdorni versionin më të ri të WordPress, 7.1.1 ose më vonë.
  2. Asnjëherë mos klikoni një lidhje për faqen tuaj që vjen me email ose mesazh, edhe nëse duket se vjen nga një koleg ose kompania e hostimit; hapni faqen tuaj duke shkruar vetë adresën e saj.
  3. Kërkojini atij që mirëmban faqen tuaj, ose ofruesit tuaj të hostimit, të aktivizojë përditësimet automatike për WordPress, në mënyrë që rregullimet e sigurisë të vijnë pa u dashur të kujtojë njeri.
  4. Fshini çdo temë ose plugin që nuk po e përdorni aktivisht, sepse një temë e instaluar por e papërdorur mund të aktivizohet pa e vënë re.
  5. Instaloni tema dhe plugin-e vetëm nga katalogu zyrtar i WordPress, jo nga lidhje që ju dërgohen ose nga faqe shkarkimi të panjohura.
  6. Nëse dikush ju thotë se faqja juaj i dërgoi një lidhje të çuditshme ose të papritur, kontaktoni menjëherë ofruesin tuaj të hostimit që ta kontrollojë.

Termat e Shpjeguar

  • CSRF (Cross-Site Request Forgery) Një mashtrim që bën që shfletuesi juaj tashmë i loguar të dërgojë një kërkesë në një faqe që ju besoni, pa pasur ndërmend ta bëni.
  • remote code execution Kur një sulmues arrin të ekzekutojë programin e tij në serverin tuaj, gjë që në thelb i jep atij kontrollin mbi të.
  • sanitize Të pastrosh informacionin që hyn në një faqe duke hequr ose neutralizuar karakteret që kompjuteri mund t'i lexojë si udhëzime.
  • selector injection Futja e karaktereve shtesë në pjesën e kodit të faqes që kërkon se cili element duhet të veprohet, kështu që ai vepron mbi një element tjetër.
  • jQuery Një pjesë e JavaScript-it e përdorur gjerësisht që ndihmon një faqe web të gjejë dhe të ndryshojë pjesët e vet.
  • nonce Një kod sigurie njëherësh i bashkangjitur një kërkese për të provuar se ajo erdhi vërtet nga sesioni juaj në faqe.
  • XSS (Cross-Site Scripting) Një dobësi që lejon sulmuesin të vendosë kodin e tij në një faqe, kështu që ai ekzekutohet në shfletuesin e kujtdo që e shikon atë faqe.
  • slug Emri i shkurtër që identifikon një temë ose plugin në një adresë web.

Shërbime AEU të lidhura

  • AEU Panel Paneli i kontrollit për hosting-un e menaxhuar