Hogyan csapkodhat egy webhely
A kedves idő a nap, kedves olvasói a blog Saját csótányok!
Szeretnék csalódást okozni azoknak, akiket a cikk címének iránt érdeklőttek - hogyan kell feltörni a webhelyet, nem írom. Ezzel a hozzászólással szeretnék elindítani egy szekciót, amely a WordPress weboldalainak biztonságára (és nem csak a). Mi a teendő annak biztosítása érdekében, hogy a webhely ne legyen feltörve? És mi a teendő, ha webhelyét már feltörték?
A másik nap egy cikket készítettem a Wordpress webhely felgyorsításáról. Amikor a blogomat a "lassú" kérelmek jelenlétére szkenneltem, tíz megjegyzést fektettem a PHP-re, amelyre figyelmet kell fordítania. Kilenc közülük a funtion.php fájlban volt olyan funkcióban, ami korábban nem volt ott.
Elkezdtem keresni az internetet, amit ez a titokzatos kód képvisel.
Kezdetben kérésre, találtam egy üzenetet a fórumokon, ahol a tulajdonosok a helyszínek WordPress panaszkodott, hogy az aktivációs mintázata az internetről letöltött történt végzetes hiba: Végzetes hiba: Nem redeclare _verify_isactivate_widgets () (korábban bejelentett /domains/site.ru/public_html /wp-content/themes/galegale/functions.php
Bizonyos esetekben, ha ilyen hiba jelentkezik, lehetetlenné válik a létrehozott témák bármelyikének aktiválása. Vagyis az oldal nyilvános része teljesen megbénult. Ezek a fórumok válaszoltak: "A webhelyét feltörték."
De az a tény, hogy ezek a webmesterek nem működtek a webhelyen - ez inkább egy plusz, mint egy mínusz - rájöttek, hogy az oldal problémákat okoz.
A mélyebb ásás után újabb helyzet alakult ki. Néhány WordPress felhasználónak rejtett linkje van a webhely testében a webhelyen. És nem volt könnyű megtalálni őket. Ha az admin bejelentkezett, akkor egyáltalán nem jelentették meg nyilvánosan. Láthatja őket, ha bejelentkezik az oldal adminisztrációs területére. És akkor "lásd" - ezt hangosan mondják, helyesebb lesz "megtalálni", mert a link horgonya a cikk egyik pontjává vált.
Amivel foglalkozunk
Minden probléma bűnös volt egy PHP függvény formájában írt vírus a functions.php fájl végén. Mindenkihez hasonlóan kezdődött:
És akkor körülbelül 200 sornyi kódot. Érdemes megjegyezni, hogy ez a funkció a webhelyen telepített összes témakör function.php-jában jelenik meg, még a szabványos is. És ha normál sablont tölt le a számítógépére. például a twentyten, és hasonlítsa össze a letöltött téma funkcióit.php és a téma a webhelyen, akkor győződjön meg róla, hogy ez a funkció nem létezik a helyi (a számítógépen található) fájlban. Ha találsz valami hasonlóat magadban, tudd - webhelyedet feltörték.
Ahogy értem, a kérdéses kód egy féreg. Íme, amit találtam róla az egyik fórumon:
_verify_isactivate_widget () függvény először elolvassa a saját fájlt, majd get_allwidgetcont () függvény megkeresi a functions.php fájlokat könyvtárakban más téma, és írja magát beléjük. Az idézett töredék mellett létezhetnek olyan függvények is, amelyek rejtett linkeket hoznak létre stb.
Ez azt jelenti, hogy amikor aktiválod, letöltötted nem érted, hogy egy fertőzött téma - fertőzi meg az összes telepített témát. By the way, rejtett linkek, úgy tűnik, nekem - ez a leginkább ártalmatlan dolog, hogy lehet kódolni. Itt találtam egy érdekes cikket arról, hogy mi fenyegetheti webhelyét, ha felvette volna az ilyen vírust.
Valójában a kezelés nagyon egyszerű. Törölni kell a kódot az összes telepített témáról a functions.php fájlokról a webhelyén. A nem megbízható forrásból letöltött témák törlése. A funkciókban pedig a functions.php további témakörökben törlünk mindent, ami kezdõdik
és a fájl végére.
Nem árt változtatni a jelszavakat WordPress, ftp, és minden esetben, az admin gazda (ki tudja, mi volt rejtve a szervezetben a féreg).
Ha legközelebb új témát telepít, győződjön meg róla, hogy nincs benne rosszindulatú kód.
Az ügyem
Feltételezem, hogy - konkrétan az én esetemben - rejtett kép volt a Base64-en keresztül kódolt, 1 pixel méretű fehér színnel. És helyeztem, mint az általam idézett példákban, a címke területén.
Jelenleg a helyszínen látni fogok magamnak, nem volt időm - a kezelés után a fertőzött kód önbevezetése végzetes hibát okozott. De a jelenlétével kapcsolatban meg tudom ítélni a kód ezen területén:
Ha kihagyja R0lGODlhAQABAIAAAAAAAP /// yH5BAEAAAAALAAAAAABAAEAAAIBRAA7 át Base64 dekóder - kapunk egy szöveges: GIF89a. D; De ha beállítja a dekódert a fájl kiadására, akkor egy olyan GIF-fájlt kapunk, amelyet újraformázott a dat formátumba. A böngésző mindent dekódol és elkészíti a végeredményt - ugyanaz a kép egy pixelben.
Természetesen milyen célból helyezték ott, és nem értettem. A PHP felületes tudása nem engedi meg a kód megértését.
A Base64 egy 64 bites helyzeti alaprendszer.A Base64 rendszer e-mailben használatos, általában bináris adatok (fájlok, képek) átvitele során. Ahhoz, hogy kódolják karakterek az angol ábécé alkalmazunk (A-Z, a-z) és számok (0-9), összesen 62 karakter, és a fennmaradó két szimbólum használni különböző karakter, a fajtól függően Base64.
Amint azt észrevettem, a _verify_isactivate_widget () függvény (pontosabban a webhely hackelésére való felhasználása) hosszú ideje ismert. Az oldal fertőzése hasonló módon egyszerű. De ez az, amiért a blogoszférában nem találkoztam egyetlen hozzászólással ebben a témában, nem értem. Ráadásul, amit a _verify_isactivate_widget () -ban találtam - ezek a polgári fórumok üzenetei voltak. Vagy a hackerek nem alkalmaznak ilyen gyakorlatokat, vagy a webmesterek nem tudnak ilyen fertőzésről.
By the way, az antivírusok nem válaszolnak erre a szkriptre. Vagyis maga a funkció nem jelent fenyegetést a webhely többi felhasználójának. Mi az, hogy a webmester önként otthont a kódot, amely lefordítja a rejtett linkek, vagy például, küldjön valakit postázni a szükséges adatokat, hogy jelentkezzen be az admin felületre. Kiderült, hogy a fuldokló emberek megmentése a maguk által fuldokló emberek munkája. Még ha nem is, telepítettem egy sértetlen témát - itt és válaszoljon a sarjadra. Ezért legyen óvatos, kedves webmesterek, ha nem szeretné, hogy webhelyét feltörje.
Erre a kiskorú megjegyzésre búcsúzom. Feliratkozás a Twitter blogfrissítésekre. RSS vagy postai úton!