Fa eco i parametri GET in un tag script riflesso o XSS basato su DOM?

1

Sto facendo fatica a capire se il seguente potrebbe essere considerato come un XSS basato su DOM o XSS riflesso e speravo che qualcuno potesse aiutarmi a distinguere la differenza.

Immagina il seguente scenario:

  1. Immagina che un sito abbia una funzionalità di ricerca in cui l'utente fornisce input in una richiesta GET, ad es. www.testsiteexample.com?search=test;%20alert(1);

  2. L'input dall'ingresso di ricerca viene riflesso all'interno di una variabile JavaScript:

    var searchResult = *userdata*
    

Penso di aver risposto alla mia stessa domanda dato che l'input dell'utente è riflesso non salvato all'interno della dichiarazione della variabile javascript - la mia ipotesi sarebbe che questo è considerato XSS riflessivo. Ma allo stesso tempo l'XSS basato su DOM come dichiarato da OWASP è:

The attack payload is executed as a result of modifying the DOM “environment” in the victim’s browser used by the original client side script, so that the client side code runs in an “unexpected” manner. That is, the page itself (the HTTP response that is) does not change, but the client side code contained in the page executes differently due to the malicious modifications that have occurred in the DOM environment.

Quindi il fatto che l'input dell'utente cambi lo script lato client ricevuto all'utente, rendi questo un XSS riflessivo?

    
posta XSS_CONFUSION_USER 02.07.2016 - 01:54
fonte

1 risposta

3

Ciò si riflette in XSS, non in XSS basato su DOM.

La differenza è sottile, ma qui ci sono le frasi chiave.

OWASP - XSS basato su DOM

the page itself (the HTTP response that is) does not change, but the client side code contained in the page executes differently due to the malicious modifications that have occurred in the DOM environment.

Un esempio classico:

<p>Current URL: <script>document.write(window.location);</script></p>

URL payload:

http://example.com/page.html#<script>alert(1)</script>

Scopri come il carico utile non si trova nella sorgente della pagina stessa, ma viene creato dall'URL del browser.

OWASP - Test per lo scripting cross-site riflesso (OTG-INPVAL-001)

Reflected Cross-site Scripting (XSS) occur when an attacker injects browser executable code within a single HTTP response. [...] The attack string is included as part of the crafted URI or HTTP parameters, improperly processed by the application, and returned to the victim.

Un esempio classico:

<p>Current URL: <?php echo $_SERVER['REQUEST_URI']; ?></p>

URL payload:

http://example.com/page.php?<script>alert(1)</script>

Guarda come il carico utile si trova nella sorgente della pagina stessa, ma dall'URL passato allo script PHP.

    
risposta data 02.07.2016 - 03:18
fonte

Leggi altre domande sui tag