Recentemente ho scoperto una cosa in un'applicazione web e ho scoperto che l'URL si riflette nell'origine della pagina, il che lo rende un po 'ovvio per XSS, ma l'input dall'URL che si riflette sulla sorgente viene assegnato all'interno di una <script>
tag.
URL:
http://www.xyz.com/back?majorID=usdfg&Action=Themesdig&pbPage=vulnerable area&QI.fd_id=random.3232
Codice:
<script type="text/javascript">
var _TM = {
cc : 'RUP'
,ll : 'en-US'
,mkt : 'IN'
,geo : 'IN'
,pagename : 'vulnerable area'
,pagetype : 'Custom'
,channel : 'Custom'
}
</script>
Quindi al primo momento, ho pensato che un alert('xxx')
sia sufficiente per creare un POC, ma l'inserimento di allerta o qualsiasi altra cosa sta portando il codice a diventare difettoso e non renderizzabile e non posso chiudere il tag dello script mentre l'applicazione sta disinfettando <
, >
e '
al loro rappresentante HTML.
E la webapp accetta anche valori esadecimali. Ho inserito Carriage Return% 0D (solo per confermare che stanno accettando) e ha funzionato.
Quindi, come posso eseguire JavaScript in questa situazione e creare POC?
In questi giorni, ho ottenuto quasi il completamento della risposta ' };alert(13);var misc={a:b
, ma l'unico problema è '
all'inizio. Ci deve essere un modo per superare anche il problema.