Sto testando uno scenario con il proxy Burp.
-
Mi trovo su un sito web
https://website.com/web -
C'è un'opzione per eliminare un elemento, quando fai clic su di esso, viene inviata una certa richiesta POST (
XMLHttpRequest, non avviene alcun aggiornamento della pagina) dove posso inserire un tag<script>:POST /web/deleteItem HTTP/1.1 Host: website.com returnParameter=<script>alert('xss')</script> -
Il metodo
deleteItemrestituisce quanto segue:HTTP/1.1 200 OK Date: Tue, 31 Jan 2017 22:18:54 GMT X-XSS-Protection: 1; mode=block Content-Type: application/json;charset=UTF-8 ... {"status":"SUCCESS","result":"<script>alert('xss')</script>"} -
In un sito Web del passaggio 1 esistono funzioni JavaScript che analizzano il JSON e mostrano il suo valore di risultato sullo schermo
-
alertviene mostrato suhttps://website.com/web, quindi XSS riflesso è stato eseguito correttamente.
Ma questo scenario non è realistico in quanto ho bisogno di disegnare un utente sul sito Web ed eseguire l'XSS in qualche modo.
Ho provato questo facendo un semplice modulo HTML POST e inviando i parametri a https://website.com/web/deleteItem . Diciamo che userò il phishing e che l'utente invierà il modulo.
L'azione è stata effettivamente eseguita, ma ho ricevuto solo una risposta JSON . Non c'era nessuna pagina del passaggio n. 1, quindi non veniva mostrato nulla come XSS, perché l'utente non si trovava su https://website.com/web dove dovrebbe essere eseguito alert('XSS') . Non sono sicuro che sia possibile inviare l'utente alla pagina n. 1 e inviarlo questo JSON con XSS in qualche modo.
Potrebbe esserci un modo per eseguire questo scenario in condizioni realistiche?