Biztonság

Telephelyek közötti kérelem hamisítási támadás végrehajtása

Telephelyek közötti kérelem hamisítási támadás végrehajtása
A CSRF-támadás arra készteti a hitelesített felhasználókat, hogy végezzenek nem kívánt műveleteket abban a webalkalmazásban, amellyel hitelesítik őket. Ez egy külső webhelyen történik, amelyet a felhasználó meglátogat, és amely elindítja ezeket a műveleteket.

Ebben a cikkben megkapja a szükséges információkat az alkalmazástól, hogy megtudja, mit kell tennie a támadó webhelynek, hogy érvényes kéréseket küldjön a sérülékeny kiszolgálónak. Ezután létrehoz egy olyan oldalt, amely szimulálja a jogos kéréseket, és arra készteti a felhasználót, hogy hitelesítés közben látogassa meg az oldalt. Néhány ismétlést is készít a koncepció alapvető bizonyítékáról, hogy ez inkább egy valós támadásnak tűnjön, ahol az áldozat nem veszi észre. Ne feledje, hogy a cikk kódfájlja megtalálható a szerző github oldalán.

Készülődni

Ehhez a cikkhez érvényes felhasználói fiókra lesz szüksége a BodgeIt-ben. Ez a cikk használja [e-mail védett] mint áldozat:

Hogyan kell csinálni…

Először elemeznie kell azt a kérést, amelyre rá akarja kényszeríteni az áldozatot. Ehhez a Burp Suite-ra vagy a böngészőben konfigurált másik proxy-ra van szükség:

  1. Jelentkezzen be a BodgeIt szolgáltatásba, mint bármely felhasználó, és kattintson a felhasználónévre a profilhoz lépéshez.
  2. Hajtsa végre a jelszó módosítását. Nézze meg, hogyan néz ki a kérés a proxyban:

    Tehát, ez egy POST kérés http: // 192.168.56.11 / bodgeit / jelszó.jsp, és csak a jelszó és annak megerősítése van a testben.

  3. Próbáljon meg létrehozni egy nagyon egyszerű HTML oldalt, amely megismétli ezt a kérést. Hozzon létre egy fájlt (nevezze el csrf-change-password.html) a következő tartalommal:







  4. Most töltse be ezt a fájlt ugyanabba a böngészőbe, mint a bejelentkezett munkamenet:
  5. Kattintson a küldés gombra, és átirányít a felhasználó profiloldalára. Azt fogja mondani, hogy a jelszó sikeresen frissült.
  6. Bár ez bizonyítja a lényeget, egy külső webhely (vagy egy helyi HTML oldal, mint ebben az esetben) végrehajthat jelszó-módosítási kérelmet az alkalmazásban. Még mindig nem valószínű, hogy a felhasználó rákattint a Beküldés Automatizálhatja és elrejtheti a beviteli mezőket, hogy a rosszindulatú tartalom el legyen rejtve. Most készítsen egy új oldalt az előző alapján; hívd csrf-change-password-scripted.html:


    Teljesen ártalmatlan oldal


    Bízhat ebben az oldalon.
    Semmi rossz nem fog történni sem veled, sem a BodgeIt-fiókoddal.





    Ezúttal az űrlapnak van egy ID paramétere, és van egy szkript az oldalon, amely beküldi annak tartalmát, amikor az oldal teljesen betöltődik.

  7.  Ha ezt az oldalt ugyanabba a böngészőbe tölti be, ahol egy BodgeIt munkamenetet kezdeményezett, az automatikusan elküldi a kérést, és ezt követően megjelenik a felhasználó profil oldala. A következő képernyőképen a böngésző Hibakeresőállítson be töréspontot közvetlenül a kérés benyújtása előtt:
  8. Ez az utolsó kísérlet jobban néz ki a támadó szempontjából. Csak az oldal betöltésére van szüksége az áldozatnak, és a kérés automatikusan el lesz küldve, de ekkor az áldozat meglátja A jelszavad módosítva lettüzenetet, és ez biztosan riasztást fog kelteni.
  9. Tovább javíthatja a támadó oldalt azáltal, hogy az egy oldalon belül egy láthatatlan keretbe tölti be a választ. Ennek számos módja van; Gyors és piszkos a 0 méret beállítása a kerethez. A fájl a következőképpen néz ki:


    Teljesen ártalmatlan oldal


    Bízhat ebben az oldalon.
    Semmi rossz nem fog történni sem veled, sem a BodgeIt-fiókoddal.
    target = "target_frame">





    Figyelje meg, hogy az űrlap céltulajdonsága a közvetlenül alatta definiált iframe, és hogy egy ilyen keret magassága és szélessége 0%.

  10. Töltse be az új oldalt abba a böngészőbe, ahol a munkamenetet elindították. Ez a képernyőkép megmutatja, hogyan néz ki az oldal, amikor a böngészővel ellenőrzik Fejlesztői eszközök: Figyelje meg, hogy az iframe objektum csak egy fekete vonal az oldalon, és az Inspector alkalmazásban láthatja, hogy tartalmazza a BodgeIt felhasználói profil oldalt.
  11. Ha elemzi a CSRF-oldala által végzett hálózati kommunikációt, láthatja, hogy az valóban kéréseket tesz a BodgeIt jelszó megváltoztatására:

Hogyan működik…

Amikor kérést küld egy böngészőből, és már tárol egy cookie-t, amely a céltartományhoz tartozik, a böngésző az elküldés előtt csatolja a cookie-t a kéréshez. Ez teszi a cookie-kat olyan kényelmessé, mint munkamenet-azonosítókat, de a HTTP működésének ez a jellemzője az, ami kiszolgáltatottá teszi őket egy olyan támadással szemben is, amelyet ebben a cikkben látott.

Ha egy oldalt ugyanabba a böngészőbe tölt be, ahol egy alkalmazásban aktív munkamenet van, akkor a böngésző automatikusan csatolja a munkamenet sütit ehhez a kéréshez. Ez akkor is megtörténik, ha ez egy másik fül vagy ablak, és ez az oldal kérést küld annak a tartománynak, ahol a munkamenetet elindítják.

Ha a kiszolgáló nem ellenőrzi, hogy a kapott kérések valóban az alkalmazáson belülről származnak-e, akkor lehetővé teszi egy rosszindulatú webhely számára, hogy hívásokat indítson olyan törvényes, aktív felhasználók nevében, akik ezt a rosszindulatú webhelyet látogatják, miközben hitelesítik a céltartományt.

Egy webalkalmazás behatolási tesztben az első általad használt kód, a két szövegmezővel és a Beküldés gomb, elegendő lehet a biztonsági hiba jelenlétének bizonyításához. Az alkalmazás behatolásának tesztelése azonban része lehet egy másik elkötelezettségnek, például a szociális mérnöki tevékenységnek vagy a vörös csapat gyakorlásának. Ebben az esetben további erőfeszítésekre lesz szükség annak megakadályozására, hogy az áldozat felhasználó gyanítsa, hogy valami történik.

Ebben a cikkben a JavaScript használatával automatizálta a kérés elküldését az oldalon található onload esemény beállításával és az űrlap beküldési módszerének végrehajtásával az eseménykezelő függvényben. Rejtett iframe-et is használt a jelszóváltás válaszának betöltéséhez, így az áldozat soha nem látja azt az üzenetet, hogy megváltozott a jelszava.

Ha érdekesnek találta ezt a cikket, felfedezheti Kali Linux Web penetrációs tesztelési szakácskönyv - második kiadás hogy felfedezze a leggyakoribb internetes sebezhetőségeket, és megakadályozza, hogy fenyegetéssé váljanak webhelye biztonságára. Kali Linux Web penetrációs tesztelési szakácskönyv - második kiadás megadja neked azokat a készségeket, amelyekre szükséged van egy penetrációs teszt minden szakaszának lefedéséhez - a rendszerről és az alkalmazásról szóló információk gyűjtésétől a sebezhető pontok azonosításáig kézi teszteléssel.

OpenTTD bemutató
Az OpenTTD az egyik legnépszerűbb üzleti szimulációs játék. Ebben a játékban létre kell hoznia egy csodálatos szállítási vállalkozást. Azonban kezdete...
SuperTuxKart Linuxhoz
A SuperTuxKart egy nagyszerű cím, amelynek célja, hogy ingyenesen hozza el a Mario Kart élményét Linux rendszerén. Elég kihívást jelentő és szórakozta...
Csata a Wesnoth bemutatóért
A Battle for Wesnoth az egyik legnépszerűbb nyílt forráskódú stratégiai játék, amelyet jelenleg játszhatsz. Ez a játék nem csak nagyon hosszú ideje fe...