Hace poco me di cuenta de algo en una aplicación web y encontré que la URL se refleja entre la fuente de la página, lo que la hace bastante obvia para XSS, pero la entrada de la URL que se refleja en la fuente se asigna dentro de un% etiqueta <script>
.
URL:
http://www.xyz.com/back?majorID=usdfg&Action=Themesdig&pbPage=vulnerable area&QI.fd_id=random.3232
Código:
<script type="text/javascript">
var _TM = {
cc : 'RUP'
,ll : 'en-US'
,mkt : 'IN'
,geo : 'IN'
,pagename : 'vulnerable area'
,pagetype : 'Custom'
,channel : 'Custom'
}
</script>
Entonces, en el primer momento, pensé que un alert('xxx')
es suficiente para crear un POC, pero insertar una alerta o cualquier otra cosa hace que el código se vuelva defectuoso y no se pueda reproducir y no puedo cerrar la etiqueta de script ya que la aplicación está desinfectando <
, >
y '
a su representante HTML.
Y la aplicación web también acepta valores hexadecimales. Ingresé Retorno de carro% 0D (solo para confirmar que están aceptando) y funcionó.
Entonces, ¿cómo puedo ejecutar JavaScript en esta situación y crear POC?
Durante estos días, obtuve una respuesta casi completa ' };alert(13);var misc={a:b
, pero el único problema es '
al principio. Debe haber alguna forma de superar el problema también.