Jak vypadá stored XSS
XSS zranitelnost má víc typů. V tomto díle se naučíme, jak hacknout tzv. stored XSS zranitelnost a jak ji v kódu opravit. Vysvětlíme si také best practices spojené s XSS.
Naše aplikace umožňuje zákazníkům, aby nás kontaktovali prostřednictvím formuláře.
![Kontaktní formulář na webu](/img/haxing/stored-xss/kontaktni-formular.png)
Administrátor potom takto odeslanou zprávu uvidí v administraci.
![Odeslaná zpráva je vidět v administraci webu](/img/haxing/stored-xss/zprava-v-administraci.png)
Formulář je ale zranitelný. Umožňuje útočníkovi poslat kus javascriptového kódu.
![XSS alert v kontaktním formuláři](/img/haxing/stored-xss/xss-kontaktni-formular.png)
![Chybějící validace v login metodě](/img/haxing/nosql-injection/chybejici-validace.png)
Tento kód se uloží na serveru a na straně administrátora se potom vykoná / spustí.
![XSS alert zobrazený v administraci](/img/haxing/stored-xss/xss-alert.png)
Takto se dají ukrást například cookies. Jak vidíte, veškeré proměnné, které se do šablony dostanou, nejsou escapovány.
K tomu neslouží znak mínus (-
), ale znak rovná se (=
). Po této úpravě už by k této zranitelnosti nemělo docházet.
![Escapování výstupu v JS šabloně](/img/haxing/stored-xss/escapovani-vystupu.png)
XSS zranitelnost má víc typů, ale důležitou obranou je validace a escapování uživatelského vstupu.
Podívejte se na video, kde tuto funkcionalitu hackuju a rovnou v kódu opravuju:
Dej odběr a žádné další video už ti neunikne. 👇