XSS su un elemento di input con style="display: none"

17

Supponiamo che solo le doppie virgolette fornite dall'utente siano consentite in un tag input che ha l'attributo style impostato su display: none .

Qualcosa del genere:

<input type="text" style="display: none;" value="aa" autofocus/onfocus="prompt(1)">

Poiché il punto di iniezione è dietro l'attributo style, è ancora possibile ottenere XSS attivando un gestore di eventi?

    
posta Utkarsh Agrawal 02.04.2018 - 13:13
fonte

2 risposte

14

Puoi sempre usare lo stesso approccio che può essere usato per input nascosto , ma questo richiede un po 'di ingegneria sociale in quanto è difficile da attivare.

Puoi tuttavia utilizzare un attributo evento diverso che potrebbe essere più facile da attivare. oninvalid viene in mente in quanto non richiede la visualizzazione dell'elemento:

<form>
<input type="text" style="display: none;" value="aa" oninvalid="alert(1)" pattern="b">
<input type="submit" value="Submit">
</form>
    
risposta data 02.04.2018 - 15:13
fonte
3

Simile a quanto menzionato con accesskey , puoi ottenere onclick per attivare elementi nascosti utilizzando label elementi.

Quando fai clic su <label for="some-id"> , il browser cerca l'input primo con quell'elemento ed esegue un clic, anche se nascosto. Un caso d'uso legittimo per questa funzione è gli ingressi checkbox / radio in cui l'etichetta viene utilizzata per indicare lo stato, come i selettori di frequenza su pagina delle impostazioni email di questo sito .

Immagina di avere un modulo simile a questo:

<input type="text" style="display:none" value="" onclick="alert(1)">
<label for="field">Name</label>
<input type="text" id="field">

Il valore, " id="field risulterebbe in una pagina simile alla seguente:

<input type="text" style="display:none" value="" id="field" onclick="alert(1)">
<label for="field">Name</label>
<input type="text" id="field">

Riceverai un avviso se l'utente fa clic su "Nome". La frequenza con cui gli utenti fanno clic sull'etichetta dipende da molte cose, ma alcuni progetti di siti potrebbero richiedere di fare clic su un'etichetta per eseguire una determinata attività.

Questo dipende anche dall'ordinazione delle pagine. Il posizionamento dell'ingresso nascosto relativo agli input legittimi è importante, nonché se l'input nascosto ha un ID e in cui è relativo al valore.

    
risposta data 05.04.2018 - 21:05
fonte

Leggi altre domande sui tag