Zilele trecute a fost descoperită o vulnerabilitate importantă și extrem de periculoasă în scriptul de redimensionare imagini TimThumb, vulnerabilitate ce permite uploadul de fișiere PHP malițioase precum C99 Shell, R57 Shell și altele similare.
Fiind extrem de simplu de utilizat, rapid și fără a necesita configurări prea complicate TimThumb este folosit de ElegantThemes, WooThemes din jucătorii mari de pe piața de teme WordPress și de majoritatea developerilor de teme WordPress gratuite. Dacă folosiți o temă WordPress care are inclus un fișier timthumb.php sau thumb.php , în cazul WooThemes, printre fișierele din folderul temei citiți mai departe în ce constă vulnerabilitatea și cum să o rezolvați.
Majoritatea developerilor de teme WordPress folosesc TimThumb nemodificat, direct de la dezvoltator. Această variantă include o serie de site-uri externe precum Flickr, Picasa, Blogger, WP.com de pe care este permis a include fișiere, a le redimensiona și apoi stoca local în folderul cache, folder ce are nevoie de cele mai multe ori de permisiuni 0777. Caută porțiunea aceasta de cod PHP
// external domains that are allowed to be displayed on your website $allowedSites = array ( 'flickr.com', 'picasa.com', 'blogger.com', 'wordpress.com', 'img.youtube.com', 'upload.wikimedia.org', );
Pentru că logica de verificare a scriptului este departe de a fi perfectă va permite link-uri de genul blogger.com/folder/imagine.jpg, dar și cele extrem de periculoase de genul blogger.com.somebadhackersite.com/badscript.php. Astfel fișierul badscript.php va fi preluat de pe site-ul extern și uploadat în folderul cache de unde poate fi apelat direct de către un potențial atacator. Un shell script, precum cele de aici, poate compromite un întreg cont de găzduire și, în cazul unor configurări mai puțin securizate, chiar un întreg server de găzduire.
Cum se rezolvă această vulnerabilitate?
1. Nu folosi TimThumb! Scriptul, deși util, este extrem de vulnerabil la astfel de exploituri datorită permisiunilor 0777 pe care folderul cache le necesită.
2. Actualizează la ultima versiune disponibilă pe Google Code. Descarcă versiunea curentă și apoi intră pe FTP și suprascrie fișierul timthumb.php din folderul temei WordPress folosite.
3. Șterge site-urilor externe permise din lista de mai sus. Astfel porțiunea respectivă de cod va deveni
$allowedSites = array();
Această vulnerabilitate este una importantă și potențial extrem de periculoasă așa că este bine ca să iei măsurile de prevenire a unor eventuale atacuri cât mai repede cu putință. Nu uita că este vorba de blogul și munca ta în definitiv și, dacă ție nu îți pasă, atunci se vor găsi “binevoitori” care să profite de neglijența ta.
Articole similare:
Salutare Eugen, chiar ieri mi-am facut update-ul la tema pe care o folosesc de la elegant themes. Ei acum nu mai folosesc acest script. Oricum de prima data am sters acel array pentru ca oricum nu folosesc site-uri externe pentru a-mi crea thumbnailurile, iar toate thumbnailurile sunt imagine pe care le uploadez. Oricum vreau sa te intreb o chestie care nu este post related. Stii cumva un plugin (sau code) ceva care sa ma ajute in momenul in care postez un post pe site-ul meu sa fie automat publicat pe google plus. Si aici nu ma refer la adaugarea butonului google +, ceva in genul WordBooker? ms frumos!
Nu văd cum anume ai putea posta automat pe Google+ având în vedere că nu e nici un mod de import conținut extern. Cel puțin nu încă.
M-am gandit si eu la asta, dar totusi am zis sa incerc. Ms frumos de raspuns!
Hahaha… cati or sa si-o ia dupa ceafa din cauza bug-ului
) Dar na, asta-i unul din dezavantajele codului open-source.
Știi care-i faza cea mai mișto? Dacă apelezi fișierul timthumb.php din folderul temei primești versiunea scriptului, să știi dacă merită efortul! =))
bazavan.ro/wp-content/themes/TheStyle/timthumb.php
O sa-si ia dupa ceafa cei care nu fac nimic in privinta asta! Oricum cei de la elegant themes, au renuntat la folosirea scriptului, ceea ce este a good thing! Personal nu-l folosesc. Dar sunt o gramada care inca il folosesc si care inca nu fac nimic in privinta asta
))