Oare ceasul zilei, dragi cititori ai blogului Gandacii mei!
Vreau să dezamăgesc pe cei care au fost intrigați de titlul articolului - cum să hackați site-ul, nu voi scrie. Prin acest post vreau să încep o secțiune dedicată securității site-urilor pe WordPress (și nu numai). Ce trebuie să faceți pentru a vă asigura că site-ul nu este hacked. Și ce să faceți dacă site-ul dvs. este deja hacked.
A doua zi am pregătit un articol despre accelerarea site-ului pe Wordpress. La scanarea blogului meu pentru prezența solicitărilor "lente", am găsit zece comentarii despre PHP, pe care trebuie să le acordați atenție. Nouă dintre ele se aflau în fișierul funtion.php într-o funcție care nu era acolo înainte.
Am început să caut pe Internet ceea ce reprezintă acest cod misterios.
Inițial, la cerere, am găsit un mesaj de la forumurile în care proprietarii de site-uri pe WordPress plâns că modelul de activare descărcat de pe Internet A apărut o eroare fatală: Eroare fatală: Nu se poate redeclare _verify_isactivate_widgets () (declarat anterior în /domains/site.ru/public_html /wp-content/themes/galegale/functions.php
În unele cazuri, dacă apare o astfel de eroare, devine imposibil să activați oricare dintre subiectele stabilite. Adică, partea publică a site-ului a fost complet paralizată. Știți ce au scris ca răspuns la aceste forumuri: "Site-ul dvs. a fost hacked".
Dar faptul că acești webmasteri au încetat să lucreze pe site - este mai degrabă un plus decât un minus - au aflat imediat că site-ul are probleme.
După săpat mai adânc, a apărut o altă situație. Unii utilizatori WordPress au link-uri ascunse în corpul articolului din site. Și nu era ușor să le găsim. Dacă administratorul a fost conectat, atunci nu i-au fost afișați deloc în public. Le-ați putea vedea dacă v-ați conectat la zona administratorului site-ului. Și apoi, "vezi" - se spune cu voce tare că va fi mai corect să "găsești", deoarece ancora link-ului a devenit un punct în articol.
Cu ce avem de-a face
Victima tuturor problemelor a fost un virus scris sub forma unei funcții PHP la sfârșitul fișierului functions.php. A început cu toți cei de genul acesta:
Apoi, aproximativ 200 de linii de cod. Este de remarcat faptul că această funcție apare în funcțiile.php ale tuturor temelor instalate pe site-ul dvs., chiar și cele standard. Și dacă descărcați un șablon standard pe computer. de exemplu, douăzeci de minute și comparați funcțiile.php ale temei descărcate și subiectul pe care îl aveți pe site, apoi asigurați-vă că această funcție nu există în fișierul local (situat pe computer). Dacă găsiți ceva similar în sine, știți - site-ul dvs. a fost hacked.
După cum am înțeles, codul în cauză este un vierme. Iată ce am găsit despre el pe unul dintre forumuri:
Funcția _verify_isactivate_widget () Mai întâi, citește propriul fișier, apoi utilizați get_allwidgetcont () funcția găsește fișierele în directoarele functions.php alte teme și se scrie în ele. În plus față de fragmentul citat, pot exista funcții asociate care inseră legături ascunse etc.
Asta este, atunci când activați, descărcat nu înțeleg unde, un subiect infectat - infectează toate temele instalate pe site-ul. Apropo, legături ascunse, mi se pare - acesta este cel mai inofensiv lucru care poate fi codificat. Aici am găsit un articol interesant despre ceea ce ar putea amenința site-ul dvs. dacă ați luat un astfel de virus.
De fapt, tratamentul este foarte simplu. Trebuie să eliminați codul din fișierele functions.php ale tuturor temelor instalate de pe site-ul dvs. Ștergeți teme descărcate din surse neîncrezătoare. Și în subiectele rămase din functions.php ștergem tot ce începe cu
și la sfârșitul dosarului.
Nu ar strica să schimbe parolele de pe WordPress, FTP, și, în orice caz, de la gazdă admin (cine știe ce a fost ascuns în corpul viermelui).
Și data viitoare când instalați o nouă temă, asigurați-vă că nu există cod rău intenționat în ea.
Cazul meu
Presupun că, în mod special în cazul meu, a existat o imagine ascunsă a unei culori albe de 1 pixel în mărime codificată prin Base64. Și a fost plasată, precum și în exemplele pe care le-am citat, mai mult în zona etichetei.
În prezența sa pe site-ul, voi vedea pentru mine, nu am avut timp - după tratament, introducerea automată a codului infectat a provocat o eroare fatală. Dar despre prezența ei, pot judeca prin această zonă de cod:
Dacă săriți peste R0lGODlhAQABAIAAAAAAAP /// yH5BAEAAAAALAAAAAABAAEAAAIBRAA7 prin Base64 Decoder - obținem un text: gif89a. D?; Dar dacă setați decodorul pentru a scoate fișierul, obținem un fișier GIF care a fost reformatat în formatul dat. Browserul decodează totul și produce rezultatul final - aceeași imagine într-un singur pixel.
Desigur, în ce scop a fost plasat acolo și nu am înțeles. Cunoștințele mele superficiale despre PHP nu mi-au permis să înțeleg codul.
Base64 - acest sistem de numărul de poziție cu bază 64. Sistemul Base64 este utilizat în e-mail, de regulă, datele binare de transfer (fișiere, imagini). Pentru a codifica caractere ale alfabetului englezesc sunt folosite (A-Z, a-z) și numerele (0-9), pentru un total de 62 de caractere, iar pentru cele două simboluri rămase folosesc caractere diferite, în funcție de specia Base64.
După cum am observat, funcția _verify_isactivate_widget () (mai precis despre folosirea acesteia pentru a hack site-ul) este cunoscută de mult timp. A infecta un site într-un mod similar este simplu. Dar de aceea în blogosphere nu am întâlnit o singură postare pe acest subiect, nu înțeleg. Mai mult, ceea ce am găsit la _verify_isactivate_widget () - acestea erau mesaje de pe forumurile burgheze. Fie că noi, hackerii, nu aplicăm astfel de practici, sau webmasterii nu știu despre existența unei astfel de contagiuni.
Apropo, antivirusurile nu răspund la acest script. Aceasta înseamnă că funcția însăși nu reprezintă o amenințare pentru ceilalți utilizatori ai site-ului. Ce este ca webmaster-ul oferit voluntar pentru a găzdui codul care se traduce link-urile ascunse sau, de exemplu, trimite pe cineva la mail datele necesare pentru a intra în zona de administrare. Se pare că salvarea oamenilor care se îneacă este munca oamenilor care se înece. Chiar și așa, am instalat un subiect strâmb - aici și răspundeți pentru jamb. Așadar, fiți atenți, dragi webmasteri, dacă nu doriți ca site-ul dvs. să fie hacked.
În această notă minoră, te-am rămas bun. Abonați-vă la actualizările de blog Twitter. RSS sau prin poștă!