Cross-User Defacement

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Cross-User Defacement je v informatice druh zranitelnosti webové aplikace založený na technice HTTP response splitting. Cílem útočníka je nahradit odpověď od serveru podvrženým dokumentem.

Popis zranitelnosti

Předpokladem k provedení Cross-User Defacement je aby aplikace byla zranitelná na [url= požadavek tak, aby rozdělil odpověď od serveru na odpovědi dvě a to s tím, že obsah druhé odpovědi je zcela v jeho režii. Původní požadovaný dokument prohlížeč zahodí a je nahrazen podvrženým dokumentem. +more Samozřejmě je nutné dodržet strukturu[/url]url= odpovědi.

Takto upravená stránka může být dále zneužita například k vylákání soukromých informací či hesel. K provedení útoku může útočník využít veřejně dostupný [[proxy server]url= požadavky patřičně upravovat, nebo pomocí metod [[Sociální inženýrství (bezpečnost)|sociálního inženýrství][HTTP response splitting]] tj. +more nesmí být filtrovány znaky CR a LF a musí docházet k přesměrování.

Pokud jsou tyto dvě podmínky splněny, tak je útočník schopen vytvořit podvržený[/url]], který bude[/url]] přinutit oběť kliknout na upravený odkaz.

Struktura HTTP odpovědi

Aby byl útok proveden, je nutné při upravování odpovědi zachovat její strukturu. První obsaženou informací v odpovědi je verze použitého protokolu a stavový kód. +more HTTP/1. 0 200 OK Následují další, v tomto případě, ne moc zajímavé informace jako je datum, verze webového serveru, jazyk, etc. Pokud jsou vynechány, tak se nic neděje. Date: Fri, 15 Oct 2004 08:20:25 GMT Server: Apache/1. 3. 29 (Unix) PHP/4. 3. 8 X-Powered-By: PHP/4. 3. 8 Vary: Accept-Encoding,Cookie Cache-Control: private, s-maxage=0, max-age=0, must-revalidate Content-Language: cs Hlavičky popisující typ dat v odpovědi a obsah. Content-Type: text/html Content-length: 47 -- prázdný řádek -- A za prázdným řádkem je umístěn samotný dokument.

Útok na zranitelnou aplikaci

Identifikace parametru pro přesměrování. Vložení nějaké hodnoty: foo

Přechod na nový řádek pomocí znaků CR a LF: %0d%0a

Nastavení Content-Length na nulu (Content-length: 0), kterou je nutné zakódovat jako URL do sekvence %200: Content-length:%200

Vložení hlavičky další odpovědi (speciální znaky je nutné převést do URL kódování): HTTP/1.1 200OK Content-Type: text/html Content-length: 47 Deface Odeslání dotazu.

Odesílaný dotaz by měl vypadat nějak takto:

foobar%0d%0aContent-length:%200%0d%0a%0d%0aHTTP/1.1%20200%20OK%0d%0aContent-Type:%20text/html%0d%0aContent- length:%2047%0d%0a%0d%0aDeface

Obrana

Obranou před Cache poisoning je neumožnit útočníkovi provést HTTP Response Splitting, čehož lze dosáhnout odfiltrováním znaků CR a LF od všech uživatelských vstupů zejména tam, kde jsou hodnoty parametrů vkládány do hlaviček.

Související články

HTTP response splitting * Cache poisoning

Externí odkazy

http://www.owasp.org/index.php/Cross-User_Defacement * http://www.securiteam.com/securityreviews/5WP0E2KFGK.html * http://yehg.net/lab/pr0js/training/webgoat.php - Řešení lekcí WebGoat

Kategorie:Počítačové útoky

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top