Bezpečnostní

Provedení útoku na padělání mezi weby

Provedení útoku na padělání mezi weby
Útok CSRF je ten, který umožňuje ověřeným uživatelům provádět nežádoucí akce ve webové aplikaci, s níž jsou ověřeni. To se děje prostřednictvím externího webu, který uživatel navštíví a který spustí tyto akce.

V tomto článku získáte požadované informace z aplikace, abyste věděli, co by měl útočící web udělat, aby odeslal platné požadavky na zranitelný server. Potom vytvoříte stránku, která simuluje legitimní požadavky a triky, aby uživatel při ověřování tuto stránku navštívil. Uděláte také několik iterací základního důkazu konceptu, aby to vypadalo spíš jako útok ze skutečného světa, kde si to oběť nevšimne. Všimněte si, že soubor kódu pro tento článek najdete na autorově githubu.

Připravovat se

Pro tento článek budete potřebovat platný uživatelský účet v BodgeIt. Tento článek používá [chráněno e-mailem] jako oběť:

Jak to udělat…

Nejprve musíte analyzovat požadavek, který chcete oběť přinutit. K tomu potřebujete Burp Suite nebo jiný proxy nakonfigurovaný v prohlížeči:

  1. Přihlaste se do BodgeIt jako každý uživatel a kliknutím na uživatelské jméno přejděte do profilu.
  2. Proveďte změnu hesla. Podívejte se, jak vypadá požadavek na serveru proxy:

    Takže je POŠTA požadavek na http: // 192.168.56.11 / bodgeit / heslo.jsp, a má v těle pouze heslo a jeho potvrzení.

  3. Pokuste se vytvořit velmi jednoduchou stránku HTML, která tento požadavek replikuje. Vytvořte soubor (pojmenujte jej csrf-change-heslo.html) s následujícím obsahem:







  4. Nyní načtěte tento soubor do stejného prohlížeče jako přihlášená relace:
  5. Klikněte na Odeslat a budete přesměrováni na stránku profilu uživatele. Řekne vám, že heslo bylo úspěšně aktualizováno.
  6. Ačkoli to dokazuje smysl, externí web (nebo místní stránka HTML jako v tomto případě) může v aplikaci spustit požadavek na změnu hesla. Je stále nepravděpodobné, že uživatel klikne na ikonu Předložit Můžete jej automatizovat a skrýt vstupní pole, aby se škodlivý obsah skryl. Nyní vytvořte novou stránku na základě předchozí; říkej tomu skript csrf-change-password.html:


    Zcela neškodná stránka


    Této stránce můžete důvěřovat.
    S vámi ani s vaším účtem BodgeIt se nestane nic špatného.





    Tentokrát má formulář parametr ID a na stránce je skript, který odešle svůj obsah po úplném načtení stránky.

  7.  Pokud načtete tuto stránku ve stejném prohlížeči, kde máte zahájenou relaci BodgeIt, automaticky odešle požadavek a poté se zobrazí stránka profilu uživatele. Na následujícím snímku obrazovky je prohlížeč Debuggernastavit zarážku těsně před odesláním požadavku:
  8. Tento poslední pokus vypadá lépe z pohledu útočníka. Potřebujete pouze oběť k načtení stránky a požadavek bude odeslán automaticky, ale poté oběť uvidí Vaše heslo bylo změněnozpráva, a to jistě vyvolá výstrahu.
  9. Útočící stránku můžete dále vylepšit tím, že načte odpověď v neviditelném rámci uvnitř stejné stránky. Existuje mnoho způsobů, jak toho dosáhnout; rychlé a špinavé je nastavit velikost 0 pro rám. Váš soubor bude vypadat takto:


    Zcela neškodná stránka


    Této stránce můžete důvěřovat.
    S vámi ani s vaším účtem BodgeIt se nestane nic špatného.
    target = "target_frame">





    Všimněte si, že cílovou vlastností formuláře je iframe definovaný těsně pod ním a že takový rámec má 0% výšky a šířky.

  10. Načtěte novou stránku v prohlížeči, kde byla relace zahájena. Tento snímek obrazovky ukazuje, jak stránka vypadá, když je kontrolována prohlížečem Vývojářské nástroje: Všimněte si, že objekt iframe je pouze černá čára na stránce a v Inspektoru vidíte, že obsahuje stránku profilu uživatele BodgeIt.
  11. Pokud analyzujete síťovou komunikaci prováděnou vaší stránkou CSRF, uvidíte, že ve skutečnosti požaduje změny hesla BodgeIt:

Jak to funguje…

Když odešlete požadavek z prohlížeče a již máte uložený soubor cookie patřící k cílové doméně, prohlížeč připojí soubor cookie k požadavku před jeho odesláním. Díky tomu jsou soubory cookie tak pohodlné jako identifikátory relace, ale tato vlastnost fungování protokolu HTTP je také tím, co jej činí zranitelným vůči útoku, jaký jste viděli v tomto článku.

Když načtete stránku ve stejném prohlížeči, kde máte aktivní relaci v aplikaci, prohlížeč k tomuto požadavku automaticky připojí cookie relace. K tomu dochází, i když se jedná o jinou kartu nebo okno, a tato stránka provede požadavek na doménu, kde je relace zahájena.

Pokud server neověří, že požadavky, které dostává, skutečně pocházejí z aplikace, umožňuje škodlivému webu uskutečňovat hovory jménem legitimních aktivních uživatelů, kteří navštíví tento škodlivý web při autentizaci do cílové domény.

V testu penetrace webové aplikace je první kód, který jste použili, kód se dvěma textovými poli a Předložit tlačítko, může stačit k prokázání přítomnosti bezpečnostní chyby. Penetrační testování aplikace však může být součástí jiné zakázky, jako je sociální inženýrství nebo cvičení červeného týmu. V takovém případě bude zapotřebí dalšího úsilí, aby uživatel oběti neměl podezření, že se něco děje.

V tomto článku jste použili JavaScript k automatizaci odesílání požadavku nastavením události onload na stránce a provedením metody odeslání formuláře ve funkci obsluhy události. Také jste použili skrytý iframe k načtení odpovědi na změnu hesla, takže oběť nikdy neuvidí zprávu, že se její heslo změnilo.

Pokud vás tento článek zaujal, můžete jej prozkoumat Kalibook pro testování penetrace webu Kali Linux - druhé vydání odhalit nejběžnější chyby zabezpečení webu a zabránit jim v ohrožení zabezpečení vašeho webu. Kalibook pro testování penetrace webu Kali Linux - druhé vydání vám poskytne dovednosti, které potřebujete k pokrytí každé fáze penetračního testu - od shromažďování informací o systému a aplikaci až po identifikaci zranitelností prostřednictvím ručního testování.

Jak změnit nastavení myši a touchpadu pomocí Xinput v Linuxu
Většina linuxových distribucí je ve výchozím nastavení dodávána s knihovnou „libinput“ pro zpracování vstupních událostí v systému. Může zpracovávat v...
Přemapujte tlačítka myši odlišně pro jiný software pomocí ovládání myší X-Mouse
Možná potřebujete nástroj, který by mohl změnit ovládání myši u každé aplikace, kterou používáte. V takovém případě můžete vyzkoušet aplikaci s názvem...
Recenze bezdrátové myši Microsoft Sculpt Touch
Nedávno jsem četl o Microsoft Sculpt Touch bezdrátová myš a rozhodl se ji koupit. Po chvíli používání jsem se rozhodl se s ním podělit o své zkušenost...