Omlouvam se ze budu psat bez diakritiky, pise se mi tak rychleji :)
V sobotu 23.4 jsem si precetl Mozkuv clanek ohledne seznamu uzivatelu na portalu blueboard.cz. Podival jsem se na zmineny seznam a napadlo me, ze je to celkem k nicemu. Zajimavejsi mi prisel puvodni link, ktery znel tusim
http://blueboard.cz/index.php?engine=users&upage=users_2. Jako clovek znaly PHP injekce jsem hned zkusil index.php?engine=ahoj. Vysledek negativni. Pak me napadla jina vec. Zkusil jsem index.php?engine=users&upage=ahoj. Zasah. Stranka vratila PHP error, cosi ve stylu "not found file for inclusion". Heureka! Nahral jsem si na server jednoduchy php skript pro praci se soubory (dekuji kubazovi aspol. za SUB) a zkusil ho inkludovat pomoci vyse zmineneho skriptu. Jiste si dovedete predstavit moji radost, kdyz na me vybafl seznam souboru s moznostmi view, rename, delete, edit aj. Pote jsem odjel ven a nechal jsem server na pospas svemu osudu, abych se na nej po navratu opet vrhl. Po chvili radeni mi ale zacalo vsechno mizet. Backdoory, ktere jsem uploadoval zmizely a i dira, ktere jsem vyuzil se zdala byt zaplatovana. Pomyslel jsem si ze tak skoncil velky hack serveru BB. Jak nesmirne jsem se mylil...
Z puvodniho pruniku se mi dochovala jen zaloha souboru index.php. V nudne chvili jsem si ho procital kdyz tu jsem narazil na zvlastni radku. Znela asi takto:
require($leftmenu.".php"); Jako clovek znaly PHP inkluze.... no nebudu to protahovat. Tentokrat jsem sel na jistotu. Udelal jsem si jednoduchy skript, ktery vypsal obsah souboru config.php. Po vykonani jsem si soubor precetl a ihned jsem nasel heslo k MySQL databazi. Adresa serveru byla localhost. Zkusil jsem si DNS lookup na blueboard.cz, avsak nemohl jsem najit PHPMyAdmina. Z dalsiho zkoumani jsem zjistil 2 IP adresy:
217.11.249.137 a
217.11.249.141, pricemz na druhe jel phpmyadmin. Prihlasil jsem se uzitim hesla z config.php ale k memu udivu se v databazi vubec nenachazely tabulky jako ankety, ci uzivatele, kamz se nektere skripty na serveru uzitim databaze odkazovaly. Prislo mi to zvlastni, tabulka se prece schovat neda... Pak me napadlo si trochu pohrat s url.
217.11.249.137/phpmyadmin ... negativni,
217.11.249.138/phpmyadmin ... negativni,
217.11.249.139/phpmyadmin ... opet negativni. Skoro jsem to chtel vzdat. Zbyvala jen jedina ip.
217.11.249.140 ... ZASAH! Server odpovedel obratem a vratil login obrazovku. Zkusil jsem stesti zjistenym loginem a heslem. Opet zasah. Prihlasil jsem se do databaze.
Sami vidite, ze i velmi znamy a na prvni pohled duveryhodny server muze mit tak zacatecnicke chyby jako je php inkluze. Pritom by stacilo zamenit
require($promena.".php"); za
require("./".$promena.".php");Doufam ze tento clanek bude poucenim vsem, kteri pouzivaji na svych strankach include z parametru url.
Ve jmenu otce, syna i ducha svateho, AMEN!
cURLy bOi
PS: Diky bohu za uzivatele na rychlych linkach typu chello, adsl, kteri mi svou neznalosti nastaveni proxy serveru poskytuji stit pro me aktivity, thx u! :-*