Esempio di XSS cliente riflesso che non è basato su DOM XSS

0

Dato che categorizzo XSS in una matrice di {client, server} x {memorizzati, riflessi} e considera DOM XSS come un sottoinsieme di client XSS, può esserci un client XSS riflesso che è non basato su DOM? Non riesco a trovare o pensare ad un esempio perché tutti i valori riflessi a cui posso pensare sono accessibili usando i metodi DOM.

    
posta Prinzhorn 21.06.2017 - 10:00
fonte

1 risposta

2

Da tali categorizzazioni :

Client XSS occurs when untrusted user supplied data is used to update the DOM with an unsafe JavaScript call.

(em mine il mio)

Quindi per essere client XSS, deve coinvolgere aggiornare il DOM.

Sebbene, l'articolo continua a dire:

DOM Based XSS is simply a subset of Client XSS

Credo che questo si riferisca alla fonte effettiva proveniente dal DOM piuttosto che dal server.

per es.

foo.innerHTML = document.location.hash;

Invece di

foo.innerHTML = ajaxResult;

Questo perché la definizione di XSS basato su DOM è la seguente:

DOM Based XSS is a form of XSS where the entire tainted data flow from source to sink takes place in the browser, i.e., the source of the data is in the DOM, the sink is also in the DOM, and the data flow never leaves the browser.

Quindi l'XSS basato su client che non è basato su DOM è dove i dati stessi provengono dal server (riflesso nella risposta dalla richiesta HTTP), ma il codice viene visualizzato sulla pagina tramite JavaScript.

Esempio:

Richiesta:

http://example.com?name=<svg onload=alert(1) />

(Il nome sarebbe% codificato, ma l'ho lasciato non codificato qui per chiarezza.)

Risposta:

<script>
var name = "<svg onload=alert(1) />";
$('#output').html(name);
</script>

<div id="output">
</div>

asporto

Ciò che è probabilmente importante quando si tratta di XSS è il seguente:

  • Qualsiasi tipo di XSS memorizzato è per lo più a rischio maggiore rispetto a qualsiasi forma di XSS riflesso. I filtri XSS del browser non possono fermarli (eccetto se è in atto una politica di sicurezza dei contenuti ed è sufficientemente bloccata).
  • Quando un XSS aggiorna il DOM in un attacco XSS riflesso, ignora anche i filtri XSS del browser (stessi avvertimenti riguardo al CSP).
  • Il server riflette che XSS è meno rischioso in quanto richiede l'interazione dell'utente e c'è anche una buona probabilità che un filtro XSS del browser lo blocchi.
risposta data 21.06.2017 - 11:53
fonte

Leggi altre domande sui tag