Máte bezpečnou aplikaci?

Zdroj: SOOM.cz [ISSN 1804-7270]
Autor: xenix001_
Datum: 7.2.2008
Hodnocení/Hlasovalo: 0/0

Problematika návštěvních knih...

Asi už jste si i vy někdy naprogramovali celkem pěknou knihu v php.
Ano krásná aplikace, ale třeba jste nepomysleli na možné díry, které se dají využít.
Čekáte v knize kritiku a pochvalu, ale nikdy by jste tam třeba neuvítali script který vás přesměruje na útočníkův web.
Útočník může chybu velice jednoduše využít pokud tedy v knize chyba je .
Jde to zjistit jednoduše a nenápadně měli by jste začít třeba obyčejným html tagem :

<b>Máš pěkný webík</b>

Když to vypíše Máš pěkný webík je možnost, že chyba je, ale tučným písmem nic moc nezmůžete ;)
To to je opravdu zbytečné, alespoň upoutáte pozornost nebo při vložení :

<h1>Spaaaaaaaaaaaaaaaaaaaaaam</h1>

Slovo spam byla jen ukazka, pokud by jste knihu napadali jen z duvodu ji zahltit tak to už dál nečtěte...

Teď už bych přešel rovnou na přímí návod jak zjistit chybu ve vaší aplikaci v tomto případě vaší knihu návštěv.
Napišeme tedy jednoduchý script samozdřejmě do knihy :

<script>
alert("TEST");
</script>

Doporučuji psát třeba TEST nebo tak, Hacked by pepa bych nedoporučoval, protože by to vypadalo divně kdyby díra nebyla.
Když tedy vyskočí okno TEST chyba je, ale pokud jste to napsaly třeba je to textu a né do položky jména je to celkem k ničemu.
Script by jste měly napsat do všech políček, protože některé jsou ošetřeny.
A když tedy chyba je může te už dělat co se vám zalíbí, třeba si to přesměrovat na svůj web a zvýšit tim svojí návštěvnost.
Tím docílíte další jednoduchým javascriptem:

<script>
window.location.href="http://vasweb.com"
</script>

Pokud by jste to chtely rozsirittak aby se vedelo kdo za tim stoji staci napsat:

<script>
alert("Hacked by vas_nick");
window.location.href="http://vasweb.com";
</script>

To znamena ze vyskoci okno Hacked by vas_nick a následovně přesměruje na http://vasweb.com.
Ale to je logicke na to by jste prisli i beze mne.
Ještě bych se vrátil ke spamerům:
Kdyby jste knihu chtěli úplně rozházet stačí napsat:

<font size="999">

Nedivte se, že tam neni zakončení :

</font>

To je proto aby se kniha rozházela ůplně, protože tento tag (<font size"999">) zvětší písmo a ne zrovna malo ;)
Nekdy se, ale ovsem vyskitne osetrena kniha a tim padem buď zobrazí html kod nebo vyskočí chyba, že jste neuzavřel/a html tag.
Ale to bylo jen pro spamery..

Jak se bránit ?

Chybovou knihu určitě smažete a napíšete novou a bezpečnou.
Použijete u toho funkci htmlspeciachars(); nebo lepší funkci .
Možná tedy chybu opravíte originálněji, ale o tom to je.
Nakonec vám ukážu příklad správně a špatně napsené knihy:
1.U této knihy je sice použita funkce:

$popis2 = HTMLSpecialChars($popis);

Ale bohužel neni to použito všude jak sem na začátku říkal napiště to do všech políček .
Díra u této knihy tedy je, protože u políčka jméno neni a to se stalo osudným.
www.jaknaweb.com vás tedy nabádá na psaní nebezpečné neošetřené knihy sami se koukněte jak to dopadlo po mém útoku:
[link] - No coment ;)
Je tam hacked by punker, protože používám 2 přezdívky a script, který sem tam vepsal přesměruje sem na www.fonael.net ;)
U teto knihy zdrojak vypisovat nebudu ostatně to tam máte u linku "No coment ;)" ..
2.Tato kniha je taky na www.jaknaweb.com a je bezpečná a je u ní použito htmlspeciachars();
Zdrojovy kod knihy - [link]
Už k tomu asi nic nepovim akorát z vlastní zkušenosti:
Lidi jsou naštvaní a nelíbí se jim to nejsou rái když někdo zněužije jejich chyb, vyhrožují že zavolají vašemu poskytovately atd.
Ale někteří vám poděkují to už jsem ovšem taky zažil, ale je to tedy málo kdy někdy se vám ani neozvou smažou příspěvek a díru nechají.
Někde, ale o vás napíší článek - [link]

Ale tato díra nemusí být vždy u knihy návštěv, ale i u něakého pridávače odkazů jako je tento [link]
A zase dali k dispozici špatnou aplikaci stčí když se do názvu vloží :

</a><script>alert("Hacked!");</script>

Aby jste nebyly udivený </a> Tam je proto :

<a href="$adresa" target="_blank">$nazev</a><br>

A vznikne z toho:

<a href="http://vasweb.com" target="_blank"></a><script>alert("Hakced!");</script></a>

Žádný odkaz nebude a vyskočí okno, ale to vám nemusí stačit tak to přesměrujete tak jak je to uvedeno ve výše uvedených příkladech (window.location.href="")
Sami si své techniky obohatíte i jinými články.


-=[xenix001]=-