XSS

 

Cross-site scripting (XSS) je metoda narušení WWW stránek využitím bezpečnostních chyb ve skriptech (především neošetřené vstupy). Útočník díky těmto chybám v zabezpečení webové aplikace dokáže do stránek podstrčit svůj vlastní javascriptový kód, což může využít buď pouze k poškození vzhledu stránky, jejímu znefunkčnění anebo dokonce k získávání citlivých údajů návštěvníků stránek, obcházení bezpečnostních prvků aplikace a phishingu.

Ukázka ú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 adresy do javascriptu. Pro ilustraci si představme že html stránku s následujícím kódem:
<SCRIPT>
var pos=document.URL.indexOf("jmeno=")+6;
document.write("Ahoj "+document.URL.substring(pos,document.URL.length));
</SCRIPT>

a na stránku vstoupíme přes standardní link

http://URL/stranka.html?jmeno=Alice

stránka standardně vypíše pouze „Ahoj Alice“. Útočník však může link pozměnit na

http://URL/stranka.html?jmeno=<script>alert('Toto je úspěšný XSS útok.');</script>

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í link, 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. Pokud do URL 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 php a někde ve zdrojovém kódu máme
<?php echo $_GET['nadpis']; ?>

stačí uživateli podstrčit url upravenou například takto:

http://URL/stranka.php?nadpis=cokoliv<script>alert('Toto je úspěšný XSS útok.');</script>

Tento typ útoku je nejběžnější.

typ 3

Je označován jako persistent, stored nebo second-order. Jde o nejnebezpečnější možnost, protože na takto napadené stránky nemusíte vstoupit přes upravený link. 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 který si takovýto komentář zobrazí.
Ahoj, super <script>alert('Toto je úspěšný XSS útok.')</script>stránky!

obrana



Na straně serveru

Odfiltrování nebezpečných html entit, nebo alespoň jejich převedení ( < za &lt; > za &gt; atd.), na což lze v php použít funkci htmlspecialchars.

Na straně uživatele

Vypnutí javascriptu.



zdroj: http://cs.wikipedia.org/wiki/XSS 



vytlačiť článok  hľadať súvisiace články 
Vyhľadávanie na stránke
Reklama
Náhodný obrázok
náhodný obrázok
Kontakty

Martin Kasman, M Software
Smreková 3095/23
Email: martin@kasman.sk

Telefón: 0908 270 294