Skriptování mezi weby – jak hackeři zneužívá vaši stránku

Tobias Schüring Naposledy aktualizováno 15. ledna 2020
6 min.
Mezi weby Scripting_XSS

XSS, SQL vstřikování, XMLrpc - pokud WordPress aktualizace zabezpečení, zprávy o aktualizacích obsahují hlavně tajemné zkratky. I když je jasné, že tyto aktualizace jsou nezbytné a přidané zabezpečení je velmi potěšující, je důležité pochopit, co je za těmito chybami zabezpečení. Protože pouze pokud rozumíte mezerám, které aktualizace vyplňují, můžete také učinit informované rozhodnutí. Proto se dnes věnujeme skriptování napříč weby, neboli XSS, zdaleka nejběžnějšímu komplexnímu útoku na WordPress Stránky.

Útoky hackerů lze snadno přirovnat k zlodějům. Brute Force Útoky jsou více podobné metodě páčidly. Zločinec odolává nástroji, dokud se dveře nebo okno neotevře. Útoky na zranitelnosti XSS jsou na druhé straně sofistikované: zloděj přesně ví, kde začít, a získává cílený přístup na jednu stranu.

V průběhu skriptování mezi weby jsou tak zranitelnosti zabezpečení na webových stránkách cíleně zneužívány. Hackeři infiltrují škodlivé skripty do důvěryhodného kontextu (vaše stránky!). Podobně jako nevidomý cestující na lodi používá tento škodlivý kód vaše stránky jako vozidlo k prosazování svých vlastních cílů.

V nejhorším případě to útočníkům poskytuje důvěrné informace nebo přístup k počítači poškozeného uživatele. Takové útoky nejsou neobvyklé: více než polovina útoků Wordfence chyby zabezpečení nalezené v letech 2015 a 2016 Plugins byly chyby zabezpečení skriptování mezi weby. Útok XSS často tvoří "základnu" pro další útoky, jako je spam, phishing nebo dokonce DDoS útoky. Proto vám dnes ukazuji, jak přesně skriptování napříč weby funguje, jaké typy útoků existují a jak nebezpečné jsou útoky.

Skriptování mezi weby vždy funguje podobně: mezera vede škodlivý kód na vaši stránku

Skriptování mezi weby je riziko vždy, když webová aplikace předá uživatelská data zadaná do webového prohlížeče, aniž by zkontrolovala jakýkoli kód skriptu, který může existovat. Dobrým příkladem takové webové aplikace je podpůrný chat.

Škodlivé skripty lze použít pro přístup k serveru prostřednictvím samotné webové aplikace. Odtud škodlivý kód dříve nebo později přistane s postiženými klienty. Dobrým příkladem takové chyby zabezpečení XSS je ta, která byla objevena v červenci 2016Chyba na obrázku metainfos v WooCommerce 2.6.2. Chyba umožnila útočníkům vložit kód HTML do metadescriptions obrázků zvenčí. Každému zákazníkovi, který by se podíval na .B obrázek (např. kliknutím na obrázek), by hrozilo, že bude napaden. Hacker mohl například infikovat počítače vašich zákazníků virem.

Populární trik ve skriptování mezi weby: Zmanipulované formuláře

XSS může také umožnit hackerům nahradit neškodné formy manipulované formy. Tyto formuláře pak shromažďují údaje obětí (návštěvníků vaší stránky!). Mimochodem,šifrování SSL nelze také chránit. Protože protokol HTTPS znamená pouze to, že připojení mezi serverem a klientem je šifrováno. Pokud je však se samotným formulářem manipulováno, šifrované připojení nebude fungovat.

Stejně jako u jiných typů útoků je cílem hackerů ve většině případů zpeněžit jejich machinace. Konkrétně to znamená, že útočníci buď ukradnou data, která později prodají, nebo chtějí infikovat stránky, aby je integrovali do takzvaného botnetu, který se pak pronajímá.

3 typy XSS: odražené, trvalé a místní XSS

Útoky skriptováním mezi weby lze zhruba rozdělit do tří typů:

Zhruba řečeno, útoky XSS se provádějí následovně: Škodlivý kód se vstříkne tam, kde se očekává vstup uživatele (např. při interním vyhledávání). V rámci odpovědi serveru je škodlivý kód poté spuštěn klientem, tj. v prohlížeči uživatele. A to je přesně místo, kde je způsobena příslušná škoda, tj. uživatelská data jsou odcizena.

Reflexní skriptování mezi weby

Některé vstupy, například vyhledávání, jsou serverem reflektovány. To znamená, že například po zadání "Test" do vyhledávacího pole stránka vypíše "Hledali jste test". Takže to, co uživatel zadá, se stane součástí odpovědi serveru.

To je přesně to, co útočníci chytře zneužívají: Pokud je na webový server odeslán škodlivý skript namísto vyhledávacího výrazu, lze se stránkou manipulovat tak, aby ji nakonec provedla. Tento typ útoku se také označuje jako trvalý. Škodlivý kód je tedy vložen pouze dočasně na příslušnou stránku, ale není uložen.

V červenci Plugin Statistiky WP takovou chybu zabezpečení zjistily (a opravily ji ve stejný den!). Vstupní hodnota na stránce wps_visitors_page předána nezaškrtnutá, což mělo za následek chybu zabezpečení způsobenou odraženou XSS. Stránka může být například napadena hackery, pokud správce dříve klikl na odpovídajícím způsobem zmanipulovaný odkaz.

Takhle může vypadat odražený útok skriptováním mezi weby .B.
Takhle může vypadat odražený útok skriptováním mezi weby .B.

Takhle to funguje: Útočník rozptylujevazby s manipulacemi se svými potenciálními oběťmi. Aniž by o tom uživatel věděl, odešle na server "zmanipulovaný" požadavek kliknutím na odkaz a škodlivý kód běží spolu s odpovědí serveru. Protože na rozdíl od trvalého XSS kód není nikde uložen, hacker ho musí hromadně distribuovat potenciálním obětem. K tomu může dojít například prostřednictvím e-mailů nebo sociálních sítí.

Trvalé skriptování mezi weby

S trvalým nebo trvalým XSS jsou škodlivé skripty uloženy na webovém serveru a doručeny pokaždé, když je klient zavolá. K tomu jsou předurčeny webové aplikace, které ukládají uživatelská data na straně serveru a pak je vysílající bez ověření nebo kódování (např. fóra). Tento typ skriptování může být obzvláště nebezpečný pro vysokofrekvenční blogy a fóra, protože malware se zde může rychle šířit kvůli velkému počtu uživatelů.

Tato grafika znázorňuje možný tok trvalého útoku skriptováním mezi weby.
Vypršení platnosti trvalého útoku skriptováním mezi weby. Zdroj: Blog SAP

Například, Infórum, zveřejněné příspěvky jsou uloženy v databázi. Ty jsou často uloženy nekontrolované a nezašifrované. Útočníci této příležitosti využijí a do normálního příspěvku na fóru .B škodlivý skript (např. pomocí komentáře). Uživatelé obdrží příslušný odkaz na příspěvek buď e-mailem, nebo náhodně dorazí k odpovídající položce a spustí skript s voláním příspěvku. Výhoda pro hackera: Nyní může "špehovat" postižené klienty nebo je přidat do svého botnetu pro další útoky.

Skriptování založené na domech nebo místní skriptování mezi weby

Na rozdíl od trvalého a odraženého XSS funguje skriptování založené na modelu DOM (Document Object Model) spuštěním skriptů na straně klienta. To znamená, že server si není vědom takového útoku a bezpečnostní opatření na straně serveru nepomáhá.

Známým příkladem takové mezery je generický balíček. Balíček genericon je sada ikon, která je Plugins , včetně jetpacku. Prostřednictvím souboru HTML v této sadě ikon bylo možné vložit odpovídající škodlivý kód.

Po zadání této adresy URL se objevila výstraha javascriptu. Toto je důkaz, že zadaný kód javascriptu lze použít k manipulaci s příslušnou stránkou.
Po zadání této adresy URL se objevila výstraha JavaScriptu. Toto je důkaz, že zadaný kód JavaScriptu lze použít k manipulaci s příslušnou stránkou. Zdroj: securityaffairs.co

Útok XSS založený na dom však vyžaduje, aby uživatel klikl na ohroženou adresu URL. Voláním této adresy URL lze škodlivý kód spustit mezerou ve skriptu na straně klienta. Mimo jiné skutečnost, že je třeba nejprve kliknout na odkaz, činí XSS založený na DOM o něco obtížnějším, a tedy méně pravděpodobným typem útoku.

Grafika znázorňuje možný tok místního útoku skriptováním mezi weby.
Příklad místního útoku skriptováním mezi weby. Zdroj: heise.de

Příklad: Uživatel klikne na zmanipulované URL a odešle požadavek webové aplikaci. To reaguje předáním kódu skriptu (který je poškozen, ale není manipulován) do prohlížeče, aby mohl skript spustit. Zmanipulované parametry z adresy URL jsou nyní interpretovány a spouštěny v prohlížeči uživatele jako součást skriptu. Webová stránka zobrazená v prohlížeči se tak změní a uživatel nyní uvidí zmanipulované stránky, aniž by si to uvědomil.

Závěr: Zcela běžné a ne neškodné, proto je důležitá vhodná ochrana

Chyby zabezpečení XSS jsou jednou z nejběžnějších bran škodlivého kódu vůbec. A často odpovídající útok tvoří základ pro další útoky, jako je spam, phishing nebo dokonce DDoS útoky. Útočníci vám ukradnou stranu a zneužívají ji k dosažení svých vlastních cílů.

Reflexní a trvalé XSS jsou obzvláště běžné, protože místní skriptování mezi weby je složitější a obtížně implementovat. Stránky, které předá zadaná uživatelská data webovému prohlížeči bez kontroly škodlivého kódu, jsou obzvláště zranitelné. Najít takové mezery není tak snadné. V zásadě je to přesně úkol poskytovatelů bezpečnosti, jako jsou sucuri a spol., kteří neustále vyvíjejí svá bezpečnostní opatření.

Ale samozřejmě jsou tu i pro normální WordPress - uživatelé mají možnost se před těmito útoky chránit.Aktualizace všech WordPress komponenty jsou .B, ale velmi účinným opatřením. Jak můžete zabránit skriptování mezi weby jako provozovatel webu, ale také jako uživatel internetu, vysvětlujeme v našem dalším článku na toto téma.

Máte nějaké připomínky nebo dotazy? Tak zanechte komentář!

Jako správce systému společnosti monitoruje Tobias naši infrastrukturu a najde veškeré body pro optimalizaci výkonu našich serverů. Vzhledem k jeho neúnavnému úsilí ho lze často nalézt na Slacku i v noci.

Podobné články

Komentáře k tomuto článku

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Povinná pole jsou označena *.