Stránka 1 z 1

PHP injection.

Napsal: stř 14. čer 2006, 14:34
od Woyta
Na stranky se mi podival hacker (opet) nastesti jeden z ech hodnejsich.
Tyto stranky je potreba zabezpecit proti PHP injection. Misto <b><? include("$page"); ?></b> se da pouzit napr. <b>if($page==...)include(...); elseif($page==...)include...</b></body>
Za ty roky co jsem mimo skolu si uz z programovani PHP moc nepamatuju a tapu co mel na mysli. Otazka zni jak poupravit kod stranek?

Napsal: stř 14. čer 2006, 14:42
od sheriff.wiggum
no on mel na mysli ze mas definovane promenne tzn podminkou vzdy vyberes jen to co je definovane nebo hodis chybu.

tzn nadefinujes if ($ble == ble) { include('./ble.html'); } elseif ... else { include('404.html'); }

pripadne pouzij switch(zda se mi prehlednejsi).

Napsal: stř 14. čer 2006, 14:44
od Woyta
THX. Neco podobnyho jsem mel na mysli. To bude docel dost. radku kodu navic :-)

Napsal: stř 14. čer 2006, 19:53
od next_ghost
Moc kódu navíc bejt nemusí. Můžeš pro ty definice použít třeba asociativní pole.

Kód: Vybrat vše

$stranky = array(par1 => page1, par2 => page2, ...);
if(isset($stranky[$_GET['par']])) include($stranky[$_GET['par']]);

Napsal: stř 14. čer 2006, 20:08
od Axis
Trošku o PHP Injection..
Spomínaný hosting s 44000 usermi je IC.CZ :(
Kvalita webhostingu u nas... aneb cURL [klapka] podruhe

Urcite to znate, kazda firma ci user si dava na webhosting svoji webovou prezentaci s tim domenim, ze je tam v bezpeci, ale ne kazdy hosting je na tom tak dobre. Bez php by webhosting nebyl asi ten pravy a at uz je php 4 nebo 5 dost rozsirene, stejne se obcas najde nekdo kdo na nejakou vychytavku, ktera neni na serveru zabezpecena prijde. A tak se stalo. Kdyz pred 2ma rokama vysel prvni cURL php exploit, zbudilo to dost otresu na webhostingech. Primitivni 5ti radkovy php kod a mohly jste si prohlidnout jakykoliv file na serveru. Kolem zacatku unora se nam podarilo ukoristit jednu novou verzi cURL php exploitu, tak sme se rozhodli ho testnut na ceskych hostingach, at uz free nebo nefree.

Funkce exploitu... Funkce je dost jednoducha dalo by se rict ze to je jakysi bypass pro 'open_basedir' (podobne tomu bylo tak i u stareho cURL).

Free webhosting hack...

Vybrali jsme 2 ceske free hostingy jeden dost znamy (z bezpecnostich duvodu nebudu uvadet nazvy spolecnosti) a druhy malinko min znamejsi ale stejne oblibeny. Vytvorili jsme si konto s krasnym indexem, vytvorily php file napsali exploit a co nevidime... Na jednom hostingu bezel exploit paradne a na druhem uz to meli zrejme fixle. Cesta nas vedla kam jinam nez k databazi useru, kterou jsme asi po 5 minutach ziskali. Tento super cesky webhosting nemel v databazi ani hashovane hesla coz bych hodnotil jako totalni neschopnost hostingu, prace admina kterej si mysli ze je buh, pro nas tim prace byla ulehcena. 6 MB databaze ktera obsahovala: uin webu, domenu, jmena, adresy, telefony, ruzne internetove kontakty hesla useru a quoty. Jenze nekde nastala chyba a hosting na bug prisel a tak vsem userum zmenil hesla a bug fixnul (asi po 1 tydnu). Pro priklad jsem vybral jeden radek z databaze:


INSERT INTO `users` VALUES (16934, 'hacker', 'Milan', 'Starý', 'Karlovy Vary', 'Majakovského 10', '36005',
'777586191', 'emerika@centrum.cz', 0, 'ok', 'normal', 1115565668, 'emerika');

Vidime ze domena je "hacker" a tento tajny hacker je "Milan Starý", Karlovy Vary, Majakovskeho 10, zanechal nam i telefoni cislo "777586191" i email "emerika@centrum.cz" a nasledne to nejdulezitejsi heslo "emerika". Jenze ted si asi reknete co s databazi v ktere jsou hesla, ktere uz jsou davno zmenene ?

Neni tomu tak... Rekl jsem si, ze bych mohl skusit, jestli si heslo zmenil do puvod stavu a zaroven jestli pouziva stejne "super" heslo i na mailu etc. Funguje zase vsude. Vidime, ze je to urcite skuseny hacker. No i kdyz jsem to nezkousel tak odhaduju ze 9 lidi z 10 si zmeni to heslo nove vygenerovane na to jejich stare. Databaze obsahuje 18 854 useru.

Tedka se vrhnem na neco vetsiho, myslim si ze hacknout placeny hosting, ktery je celkem dost znamy, je pekny ulovek !

Placeny hosting hack...

Zase nadesel cas pro novy cURL exploit a tak jelikoz jsme meli pristup k jenomu kontu na onom hostingu, tak jsme jej taky zkusili. Exploit behal skvele a tak i databaze tohoto hostingu se nam zjevila. Tato databaze byla o neco chudsi nez predesla ale i tak pekne. Obsahuje jen 3 informace ktere jsou domena, heslo (uz v hashi), a delka hesla. No databaze byla na svete, ale co s heslama v hashi ? Museli jsme najit patricny louskac hesel. Cracker se skompilil a prvni test bylo 7dmi mistne heslo. Nez jsem napocital do 5ti tak bylo heslo na svete. 8mi mistne heslo trvalo uz malinko dyl ale nejvetsi pocet tam byl aj tak 7 dmi mistnych. Tento hosting BUG fixnul za 14 dni od hacku, ale hesla v klidu nemenil, takze vsecky funguji stale. Z bezpec. duvodu jsem meno hostingu neuvadel, ani vypis z databaze. Databaze obsahuje 44 484 useru.

Chyby byla opravena na CVS, ale autori cURLu nebyli schopni priznat dalsi trapny bug, aby neztratily vernost useru.

khu @ dev . null

Napsal: stř 14. čer 2006, 21:00
od Woyta
Pekny na IC jsem ted prechazel kvuli prostoru. Sve udaje jsem ale neuvadel.
Heslo mam cca 20 znaku ze vsech skupin.
To pole je pro me novinka.
Ja to vyresil takto:

Kód: Vybrat vše

<? switch ($page)
  {
//index linky
    case "base.php":
      include("$page");
      break;
    case "moding/index.php":
      include("$page");
      break;
....
    default:
      $page="404.php";
      include("$page");
  }