¿Es una etiqueta de opción que puede tener cualquier valor HTML interno insertado en XSS?

0

Considere el siguiente código:

<select>
    <option>ANY VALUE</option>
</select>

Los usuarios de mi sitio web tienen la capacidad de agregar etiquetas de opción a una lista que puede tener cualquier valor insertado en ella. Agregar etiquetas a esta lista no es efectivo, ya que muestra la cadena literalmente cuando se encuentra en la lista de opciones.

En la especificación HTML, el contenido permitido de una etiqueta de opción es solo datos de caracteres normales.

¿Hay algún valor que un usuario malintencionado pueda insertar para lanzar un ataque XSS usando esto?

    
pregunta tupto 08.09.2016 - 18:53
fuente

1 respuesta

4

Sí:

</option></select><img src=no onerror=alert(1)>

Hay algunas etiquetas en las que las etiquetas no se analizan (área de texto o título serían otros dos ejemplos), pero un atacante, por supuesto, puede simplemente salir de esos contextos.

La inyección se realiza dentro de un contexto HTML normal, por lo que la codificación HTML de caracteres peligrosos ( < y > ) sería suficiente, pero es una buena práctica codificar también ' y " (es la correcta) solución aquí.

    
respondido por el tim 08.09.2016 - 18:56
fuente

Lea otras preguntas en las etiquetas