XSS per superare le entità HTML

-1

In una casella di ricerca ( <input value=" *insert search term here* "...> ), quando inserisco " onmouseover="alert(1) , le virgolette doppie vengono convertite nelle loro entità, quindi non è possibile uscirne. C'è un modo possibile per iniettare JavaScript in questo caso?

    
posta BillyBob 26.05.2016 - 07:24
fonte

1 risposta

2

No.

Se l'input dell'utente è correttamente codificato (codifica HTML in questo contesto), XSS non è possibile in quanto l'input dell'utente non sarà mai trattato come codice JS. La corretta codifica HTML (conversione dell'ingresso nelle rispettive entità HTML) è il modo preferito di impedire l'XSS quando qualsiasi input dell'utente viene inserito / riflesso nel codice HTML.

Il tuo esempio sembra essere un caso di XSS basato su DOM (dove l'input dell'utente non viene mai inviato al server e viene inserito direttamente nel DOM). Se questo è il caso, la conversione in entità HTML (codifica HTML) viene eseguita sul client (browser) autonomamente.

È probabile che questo input venga riflesso altrove nella risposta (caso di XSS riflesso ). Alcuni esempi in cui è possibile eseguire XSS nello scenario:

  • Come valore per un altro attributo HTML (contesto HTML) in cui questo input non è codificato in HTML.
  • Come valore per un gestore di eventi o dichiarato come variabile JS all'interno dei tag di script inline e dati i dati non sono codificati correttamente qui.
risposta data 26.05.2016 - 08:16
fonte

Leggi altre domande sui tag