Rompiendo JS String XSS

2

He estado buscando vulnerabilidades de XSS en el sitio web de un amigo (blackbox) y en una de las páginas toma su entrada y la coloca dentro de un script js, window.location="[INPUT]";
No pude descifrar las comillas porque están siendo reemplazadas con " y %22 permanece %22 , pero puedo poner un \ al final de mi entrada y se escapa de la cotización original ( window.location="[INPUT]\"; ) Lo que me da una cadena sin terminar pero no puedo influir en ningún código después de eso, así que no hay XSS ahí, ¿verdad? Básicamente, todo lo que puedo hacer es romper el código y eso es todo

Editar:
--Alguna más información--

  1. < , > , & y " se están reemplazando con &lt; , &gt; , &amp; y &quot;
  2. el servidor comprueba si INPUT comienza con http:// o https://

Cosas que he probado:

  1. Rompa la cadena con </script> => siendo reemplazado con &lt;/script&gt; (y falla)
  2. Se intentó romper con la URL codificada </script> ( %3C%2Fscript%3E ) pero se muestra como una cadena ( window.location = "http://test.com%3C%2Fscript%3E\"; ) y el error sigue siendo SyntaxError: unterminated string literal
pregunta badprogrammerqq 16.10.2016 - 14:07
fuente

1 respuesta

0

Esto no es explotable.

  • No puedes escapar de la cadena porque las comillas están codificadas. ( " - > &quot; )
  • No puedes escapar del contexto de la etiqueta de script porque los paréntesis están codificados. ( < - > &lt; )
  • No puede crear nada excepto las URL http[s]:// porque el principio de la cadena está marcado. No importa lo que agregue después de la parte del protocolo, no puede convertir esto en una URL data: o javascript: después.

Hay otros trucos que puedes probar pero son específicos de la implementación. No hay evidencia de que funcionen en este caso, por lo que estos son solo algunos ejemplos para darle una idea:

  • ¿Quizás el filtro se detiene después de un byte NULO? (por ejemplo, http://%00"<>... )
  • ¿Quizás por alguna razón funcionan las variantes de Unicode? (por ejemplo, U + FF02: )
  • ¿Tal vez funcionen otros esquemas de codificación? (por ejemplo, \x22 en lugar de " )
  • etc.
respondido por el Arminius 17.10.2016 - 00:40
fuente

Lea otras preguntas en las etiquetas