You are on page 1of 2

Cookies, aneb koláčky, co nám nechutnají

Jak jistě všichni víte, tak protokol HTTP nesleduje stav různě odlišných návštěv. Z tohoto důvodu
byly vytvořeny tzv. cookies, neboli objekty obsažené v dotazech a odpovědích protokolu HTTP.
Právě díky tomu si může server pamatovat vaši poslední návštěvu, nebo mnoho jiných informací o
vaší identitě. Cookies mají určitou platnost a to například do vypnutí prohlížeče, uplynutí dané
časové hodnoty nebo mohou být neomezené. Soubory cookie mohou být takée perzistentní a v tom
případě jsou uloženy na pevný disk uživatele. Potencionální útočník je schopen například ukrást
celou vaši identitu, nebo si poskládat velice důvěrné informace dohromady.

Cross-site scripting“

Tento typ útoku lze použít jak pro získání session-id (tzv. „session hijacking“), tak pro jeho
podstrčení (tzv. „session fixation“). Útok spočívá v tom, že vstup od uživatele (příspěvek do
diskuse, e-mailová zpráva apod.) obsahuje HTML kód, resp. skript, který je při zobrazení stránky
prohlížečem běžným způsobem interpretován.

V nejjednodušším případě vstup obsahuje odkaz na stránku útočníka – pokud uživatel klikne na
tento odkaz, odešle společně s požadavkem zde již mnohokrát zmiňovanou hlavičku Referer, ze
které může útočník snadno zjistit session-id uživatele, pokud se pro přenos session-id používá URL.
Časem se samozřejmě přišlo na různá vylepšení tohoto útoku za použití klientských skriptů, tedy
převážně JavaScriptu: do URL útočníkova skriptu lze zakomponovat adresu zobrazované stránky
přečtením atributu window.location, session-id cookie lze získat z atributu document.cookie, místo
odkazu lze použít neviditelný obrázek (atribut obrázku src bude obsahovat to samé jako atribut
href u odkazu) atd.

Nejjednodušší a zároveň nejspolehlivější ochranou proti takovému útoku je ještě před výstupem
zkonvertovat všechny zadané znaky, které mají v HTML speciální význam (<>&"), do
odpovídajících HTML entit. Tj. z „<“ se stane „<“, z „&“ se stane „&“ apod. V PHP je právě k tomuto
účelu určena funkce htmlspecialchars(). Jestliže chceme ze vstupu úplně odstranit všechny HTML
tagy, aby se nezobrazily ani jako prostý text, pak můžeme použít funkci strip_tags(). Chceme-li
uživatelům umožnit alespoň vkládání odkazů, je k tomuto účelu vhodné použít stránku pro
přesměrování – viz subkap. 4.8.

Meta tag injection

Využívá stejnou slabinu v aplikaci jako předchozí typ útoku. V tomto případě interpretuje prohlížeč
vložený tag META 8 Ačkoli tag META správně patří pouze do elementu HEAD, prohlížeče ho běžně
interpretují, ať už se vyskytne kdekoli v dokumentu.

meta http-equiv="Set-Cookie" content="sessionid=5dadf546; expires=Friday, 1-Jan-2010 00:00:00 GMT"

Výhodou tohoto typu útoku je, že interpretaci tagu META nelze v prohlížeči na rozdíl od JavaScriptu
vypnout, takže se pro „session fixation“ útok hodí více než „cross-site scripting“. Obrana přitom
zůstává stejná jako v předchozím případě.

Manipulace pomocí nástroje Achilles

Velice jednoduchým způsobem, jak zneužít soubory cookie, je jejich zachycení na síti. Tím jde
docílit spoofingu (ukradnutí cizí identity). Jediný problém je, že útočník většinou nemá možnost
zachytit takové postavení v síti, aby měl dovoleno zachycení cookies. Achilles je server proxy, ketrý
řídí všechcen traffic mezi klientem a serverem, tím se vše vysvětluje. Stačí ho nastavit jako výchozí
a je hotovo...=)

Ukradnutí textového souboru pomocí ActiveX a JavaScriptu


Pomocí ActiveX a JavaSriptu jde docílit ukradnutí jakéhokoli textového souboru a pro naše štěstí i
cookies. pro vykonání výše zmiňovaného příkazu je potřeba mít povolené prvky ActiveX.
Ale podrobný návod na tomhle portálu již vyšel, takže ho nebudu dále rozebírat.

Obrana

Především doporučení a neustálé upozorňování klienta o nebezpečnosti zapnutých cookies a prvků


ActiveX. Na spousty webech jsou soubory cookies povinné, takže se jinak ani neobejdete. Vše
závisí na vaší důvěře serveru.

Závěr

Tento článek jsem pojednal velice rychlou formou, a snad i co nejvíce srozumitelně. Snad ho i
pochopíte. Pro rozvoj těchto možností dedikuji další články.

You might also like