Cross-site scripting

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Cross-site scripting (XSS) je v informatice typ zranitelnosti webové aplikace. XSS útok je založen na vložení kódu (podstrčení) do dynamické webové stránky (JavaScript prováděný na straně klienta). Pomocí XSS může útočník obejít omezení přístupu tím, že útočníkův kód je vložen do webové stránky ověřeného uživatele a tím zdánlivě pochází z důvěryhodného zdroje. XSS útoky jsou stále vážným nebezpečím pro webové aplikace a jejich dopady mohou být od pouhého poškození vzhledu webové stránky k vážnému narušení bezpečnosti a získávání citlivých údajů návštěvníků. XSS může být využíván i při phishingu, kde je pomocí XSS uživateli ukázán jiný obsah na jinak důvěryhodné stránce.

Ukázky útoku

Typ 1

Většinou se označuje jako lokální nebo DOM based. Lze ji využít i na statických stránkách a jde o neošetřené přenesení proměnné z [url=://[[Uniform Resource Locator|URL]url=://[[Uniform Resource Locator|URL][Uniform Resource Locator|URL]] adresy do javascriptu. +more Pro ilustraci si představme, že máme html stránku s následujícím kódem:.

var pos=document.URL.indexOf("jmeno=")+6; document.write("Ahoj "+document.URL.substring(pos,document.URL.length));

a na stránku vstoupíme přes standardní odkaz [/url]]/stranka. html. +morejmeno=Alice stránka standardně vypíše pouze „Ahoj Alice“. Útočník však může odkaz pozměnit na [/url]]/stranka. html. jmeno=alert('Toto je úspěšný XSS útok. '); a tím vykoná zákeřný kód.

Tento vektor útoku (stejně jako u typu 2) stojí a padá na přístupu přes upravenou url a většinou je takto i snadno odhalitelný pomocí prosté logiky. Pokud na stránku přijdete přes normální odkaz, tak se zachová tak, jak má.

Typ 2

Označuje se jako non-persistent nebo reflected. Je postaven na úpravě části URL která se interpretuje do stránky jako její součást, například jako nadpis. +more Pokud do URL adresy přidáme svůj kód, který není před interpretací upraven, tak se stránka v prohlížeči zachová, jako by námi vložený kód byl její součástí. Tato zranitelnost se týká především stránek s generovaným obsahem, pro příklad používáme [url=://[[Uniform Resource Locator|URL][php]] a někde ve zdrojovém kódu máme.

stačí uživateli podstrčit adresu upravenou například takto: [/url]]/stranka.php?nadpis=cokolivalert('Toto je úspěšný XSS útok.');

Typ 3

Je označován jako persistent, stored nebo second-order, protože dojde k přímé a trvalé modifikaci obsahu stránky. Jde o často využívanou možnost, protože na takto napadené stránky nemusíte vstoupit přes upravený odkaz. +more Vzniká, pokud je obsah stránky generován z databáze. Náš javascript jednoduše vložíme třeba jako součást komentáře - spolu s ním se uloží do databáze a je následně zobrazen všem lidem, kteří si takovýto komentář zobrazí.

Ahoj, super alert('Toto je úspěšný XSS útok.')stránky!

Obrana

Na straně serveru

Při vkládání dat od uživatele do HTML stránky odfiltrovat „nebezpečné“ znaky z uživatelského vstupu, resp. je převést na příslušné HTML entity ( < na &lt;, > na &gt; atd. +more), k čemuž lze použít specializované funkce (např. v jazyce PHP funkci [url=http://php. net/manual/en/function. htmlspecialchars. php]htmlspecialchars[/url]).

Na straně uživatele

Většina moderních prohlížečů (Chrome, Opera, Firefox, Safari. ) má v roce 2020 implementovanou ochranu proti některým XSS útokům. +more Uživatel také může ve svém prohlížeči vypnout JavaScript, což má však často negativní dopad na jejich funkčnost. Celkově jsou možnosti na straně uživatele omezené, protože o zamezení XSS by se měl postarat kód na straně serveru.

Odkazy

Související články

SQL injection - podobný druh útoku na WWW aplikaci přes neošetřené vstupy * Cross-Site Request Forgery

Externí odkazy

[url=http://www. cgisecurity. +morecom/articles/xss-faq. shtml]The Cross-site Scripting FAQ[/url] * [url=http://www. owasp. org/index. php/Cross-site_Scripting_(XSS)]Cross-site Scripting (XSS)[/url] na OWASP * [url=https://web. archive. org/web/20120911044754/http://ha. ckers. org/xss. html]Přehledný seznam většiny použitelných XSS scriptů[/url] * [url=http://www. phpguru. cz/clanky/cross-site-scripting]Podrobný článek o XSS a obraně proti němu v PHP[/url] * [url=http://www. soom. cz/index. php. name=articles/show&aid=485&title=Pokrocile-techniky-XSS]Obsáhlý článek věnovaný XSS[/url] * [url=http://www. soom. cz/index. php. name=articles/show&aid=574&title=Pravni-aspekty-XSS-utoku]Právní aspekty XSS útoků[/url] * [url=http://www. soom. cz/data/Cross-Site_Scripting_v_praxi__Roman_Kummel. pdf]Cross-site Scripting v praxi - zranitelnost[/url].

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