Perché questo payload XSS non funziona?

0

Oggi ho bisogno di demo di XSS basato su DOM e mi sono imbattuto in questa pagina creata per lo stesso scopo esatto. Mi chiedo perché <img+src+onerror=alert(1)> funziona ma <script>alert(1)</script> no?

    
posta Sam 25.07.2018 - 18:52
fonte

1 risposta

2

La pagina a cui fai riferimento ha il seguente codice:

<p id="p1">Hello, guest!</p>
<script>
...
var username = searchParams.get('name');
...
document.getElementById('p1').innerHTML = 'Hello, ' + username + '!';

La tua aspettativa è che l'impostazione di nome utente su <script>alert(1)</script> debba risultare in <p id="p1">Hello, <script>alert(1)</script></p> , che secondo te dovrebbe portare allo script che viene eseguito.

Ma non è questo il caso. La documentazione di Element.innerHTML spiega perché:

HTML5 specifies that a <script> tag inserted with innerHTML should not execute.

Immediatamente prima di questa dichiarazione c'è anche un esempio simile al tuo per illustrare questo.

    
risposta data 25.07.2018 - 19:47
fonte

Leggi altre domande sui tag