Come eseguire XSS nei campi di input HTML nascosti usando accesskey?

4

Sto cercando di inserire un carico utile XSS in un campo di input HTML nascosto. So che funziona con un tag script come sotto, ma sto cercando altre alternative.

<input type="hidden" name="date" value=""/> <script>alert('0');</script>" />

Ho trovato questo articolo , che dice che può essere fatto con l'attributo accesskey :

Eventually I learned about XSS through access keys from above article and wondered if the onclick event would be called on the hidden input when it activated via an access key. From articles I learnt, we can execute an XSS payload inside a hidden attribute, provided you can persuade the victim into pressing the key combination. On Firefox Windows/Linux the key combination is ALT+SHIFT+X and on OS X it is CTRL+ALT+X..

A partire da ora so che funziona con qualche valore di attributo type, ad es.

<input type="text" accesskey="X" onclick="alert(1)">

Stavo provando con un campo nascosto:

<input type="hidden" accesskey="X" onclick="alert(1)">

Ma questo non funziona per me in diversi browser, supponendo che potrebbe essere stato gestito per i browser recenti, quindi ho anche provato con alcune versioni più basse come firefox 4, ma il lavoro si è risolto. Qualcuno può aiutare con questo?

    
posta vidyashi 12.12.2017 - 10:05
fonte

1 risposta

3

Dopo l'iniezione, il codice risultante dovrebbe apparire come segue:

<input type="hidden" accesskey="X" onclick="alert(1)">

Per il payload da eseguire, l'utente deve premere la combinazione di tasti di scelta per il campo di input nascosto (per Firefox, Alt + Shift + X , vedi questo per altri browser). Se vuoi assicurarti di attivare la chiave di accesso, puoi passare da hidden a text per verificare che il campo riceva lo stato attivo.

Ho controllato su Windows, e non sembra funzionare in Chrome 62 e IE 11. Tuttavia, funziona in Firefox 57. Così mentre Firefox attiva l'evento onclick quando vengono premuti i tasti di scelta, gli altri browser no.

Qui è un esempio funzionante se vuoi provare te stesso.

Quindi perché non funziona in Firefox 4? Poiché il comportamento qui non è coerente tra i browser, non mi sorprenderebbe se non fosse coerente tra le diverse versioni dello stesso browser. Prova il mio esempio su Firefox 4, assicurati che la chiave di accesso sia effettivamente attivata e, se non funziona, è abbastanza. Dovrai cercare di inventare qualcos'altro. E perché vorresti indirizzare comunque un browser così antico?

Si noti che si tratta di un exploit piuttosto limitato poiché funziona solo su Firefox e richiede l'interazione dell'utente. Non so se c'è un modo migliore per farlo, ma sembra che questo sia il migliore che la brava gente di Portswigger potrebbe inventare.

    
risposta data 12.12.2017 - 10:25
fonte

Leggi altre domande sui tag