Zpět na seznam článků     Číst komentáře (5)     Verze pro tisk

Krádež cookies aneb Cookie Hijacking

Autor: Genua_   
9.6.2007

Taky jste někdy přemýšleli nad tím, co jsou ty záhadný cookies a jakou mají vůbec funkci v protokolu http? Tady máte jasné odpovědi i s malou nápovědou, jak docílit cookies krádeže.


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 "&lt;", z "&" se stane "&amp;" 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í.

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&#8209;Jan&#8209;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.

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ěrem

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.

Líbil se Vám článek?
Budeme potěšeni, pokud vás zaujme také reklamní nabídka

Social Bookmarking

     





Hodnocení/Hlasovalo: 3/4

1  2  3  4  5    
(známkování jako ve škole)