È possibile falsificare una richiesta di posta?

10

Considera il seguente URL http://mysite.com/form?date=x . Supponiamo che se x è in un formato errato, che una pagina venga restituita con <p>x is not a valid date</p> , in cui l'autore della pagina ha dimenticato di sfuggire alla variabile x . Supponi che x sia debitamente salvato in tutte le altre posizioni.

È possibile creare un collegamento dannoso che potrebbe inserire Javascript arbitrario con accesso alle credenziali dell'utente. Cosa accadrebbe se il sito richiedesse un POST piuttosto che un GET? Ci sarebbe un modo per sfruttare questo buco di sicurezza?

UPDATE : modifica la situazione in modo più realistico e rimuove i riferimenti irrilevanti al clickjacking

    
posta Casebash 13.10.2011 - 06:58
fonte

3 risposte

10

Clickjacking è un attacco che induce l'utente a fare clic su qualcosa di cui non è a conoscenza . Di solito si fa caricando la pagina attaccata in un iframe trasparente. Questo iframe viene fatto scorrere nella posizione corretta e tenuto sotto il puntatore del mouse.

Una funzione che viene spesso attaccata da Clickjacking è il pulsante Mi piace di Facebook .

Mentre il clickjacking funziona per POST, un semplice attacco non consente all'aggressore di manipolare l'URL o i parametri del modulo.

La falsificazione della richiesta cross-site è il nome dell'attacco che utilizza il sito vulnerabile come target di un modulo sul sito dell'attaccante. Questo modulo può essere completamente invisibile e inviato automaticamente tramite JavaScript. Tutti i browser comuni includeranno il cookie di sessione per il sito di destinazione nella richiesta.

Gli attacchi di falsificazione delle richieste cross-site vengono impediti aggiungendo un campo modulo nascosto con un valore casuale . A meno che non ci siano altre vulnerabilità, un attacco CSRF viene fatto alla cieca, quindi l'attaccante non può leggere quel valore nascosto.

Nel tuo caso, anche se il modulo è protetto con un token di prevenzione CSRF casuale, dovresti comunque correggere il bug di cross ite scripting perché potrebbero esserci altre vulnerabilità. L'attaccante può essere molto creativo in combinando vulnerabilità minori a un exploit completo .

    
risposta data 13.10.2011 - 08:54
fonte
8

Non hai bisogno di clickjacking. Francamente, non capisco perché stai chiedendo di clickjacking; non sembra rilevante.

Si tratta di una vulnerabilità XSS standard di bog e, una volta che un sito presenta una vulnerabilità XSS come questa, la sicurezza del sito viene persa. Se il sito ha una vulnerabilità XSS, il clickjacking è difficilmente rilevante (non vi è alcun motivo per gli attaccanti di disturbarsi con il clickjacking).

È ancora vulnerabile, se il sito lo richiede come POST. Ad esempio, l'utente malintenzionato può creare un modulo e utilizzare Javascript per inviarlo automaticamente.

La soluzione migliore è probabilmente quella di fare un po 'di storia sullo XSS (cross-site scripting).

    
risposta data 13.10.2011 - 09:09
fonte
4
<form method=POST action=http://vulnerablesite.com/>
  <input type=hidden name=q value=evil-content>
</form>

<script>document.forms[0].submit()</script>

ricaricherà la pagina sul contenuto da un POST cross-site che include parametri POST arbitrari senza alcuna interazione da parte dell'utente: l'utente malintenzionato deve solo essere in grado di far caricare l'utente su una pagina che controlla.

Hai chiesto se "è possibile creare un collegamento dannoso che potrebbe inserire Javascript arbitrario". Sì, nell'esempio che hai presentato il modulo sarebbe simile a questo:

<form method=POST action=http://mysite.com/form>
  <input type=hidden name=date value="&lt;script&gt;alert(1)&lt;script&gt;">
</form>
<script>document.forms[0].submit()</script>

La creazione di una tale pagina Web e l'indirizzamento degli utenti a questo collegamento dannoso invierebbero <script>alert(1)</script> come valore del parametro date . Se thas non è scappato correttamente (come hai detto nella domanda), hai appena sfruttato la forma più semplice di XSS vulnerabilità.

    
risposta data 13.10.2011 - 23:21
fonte

Leggi altre domande sui tag