Come posso sfruttare un'applicazione web se lo sniffing del contenuto non è disabilitato?

4

Mi sono imbattuto in uno dei siti Web del cliente per i test di penetrazione con JSON callback che riflette l'input dell'utente nel corpo della risposta.

come questo:

https://example.com/somepage?callback=<wow>mypayload

{"callback":"mypayload"} 

Poiché il tipo di contenuto è application / JSON , quindi il browser non sta analizzando i tag HTML e anche X-Content-Type-Options = nosniff " non è impostato nell'intestazione della risposta.

È possibile creare un payload sfruttabile che genera XSS o un altro tipo di vulnerabilità ?

    
posta dossi 11.12.2015 - 09:41
fonte

1 risposta

3

Content-Type è solo un suggerimento dei dati forniti al destinatario (consumatore). Ciò significa che il ricevitore può o meno agire in base a tale intestazione.

Un tipico browser leggerà l'intestazione del tipo di contenuto per rendere il contenuto nel miglior modo possibile (JSON come albero, flusso audio come un giocatore, ecc.). Prova a inviare una stringa JSON a un browser con Content-Type: application/json e senza. Stesso carico utile ricevuto, presentazione diversa.

Un'applicazione generica farà tutto ciò che vuole con il contenuto. In particolare può decidere di visualizzarlo (o parti di) come HTML grezzo. In tal caso, se il tuo payload include JavaScript formattato correttamente, verrà eseguito.

Questo non è diverso dal classico hardening delle applicazioni. La regola d'oro è non fidarti mai di ciò che ricevi . Ciò include non solo il corpo della tua query HTTP ma anche le intestazioni.

Come nota a margine, il contenuto dannoso può arrivare ai tuoi dati non solo attraverso ciò che ricevi e processa. Qualcuno può anche modificare, ad esempio, i dati che sono memorizzati nel DB direttamente nel DB. Quindi l'assoluta necessità di sfuggire a ciò che viene inviato al destinatario, che è in definitiva il modo in cui vengono eseguiti gli attacchi XSS (e simili).

    
risposta data 11.12.2015 - 17:09
fonte

Leggi altre domande sui tag