Ho un payload XSS che ha eseguito correttamente javascript quando ho incollato l'URL nel browser e premuto invio. Questo è l'URL:
localhost/path/to/file.jsp?aMessage=%3Cscript%3Ealert(%27XSSed%27)%3C/script%3E
Dove aMessage
viene visualizzato in una tabella in questo modo:
<table>
<tr>
<td>
<%= myObject.getString("aMessage") %>
</td>
</tr>
</table>
Il markup è così:
localhost/path/to/file.jsp?aMessage=<script>alert('XSSed')</script>
Risultato: compare una finestra di avviso che dice "XSSed". Ho quindi provato a eseguire un attacco XSS utilizzando il titolo / sottotitolo della pagina Web, ma non ha funzionato. Questo era il nuovo URL:
localhost/path/to/file.jsp?aTitle=%3Cscript%3Ealert(%27XSSed%27)%3C/script%3E&aSubTitle=%3Cscript%3Ealert(%27XSSed%27)%3C/script%3E
dove aTitle viene assegnato al titolo e aSubTitle viene assegnato a sottotitolo nella jsp in questo modo:
<popup
title = '<%= myObject.getString("aTitle") %>'
subTitle = '<%= myObject.getString("aSubTitle") %>'>
</popup>
Dove popup è un tag personalizzato in un file xml.
Quindi ho un paio di domande:
1) È possibile eseguire un attacco XSS usando il titolo / sottotitolo di una pagina web? Mi chiedo se sia necessario sfuggire ai personaggi in questi campi, o se va bene accettare qualunque testo. (So che in genere non è una buona idea è solo per motivi di curiosità).
2) Se è possibile, perché non funziona?