elemento de ancho Svg XSS

-1

Estoy trabajando en un generador de imágenes svg. Ahora quiero establecer el valor de ancho y alto del usuario.

¿Puede un usuario explotar las etiquetas de este elemento? ¿Y qué debo hacer para que esto sea seguro?

<?php
    $user_input = $_GET["name"];
?>

<svg width="<?php echo $user_input;?>" height="100">
    <circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" />
</svg>
    
pregunta Peter234 18.05.2016 - 17:43
fuente

1 respuesta

0

Sí, su SVG puede modificarse fácilmente para ejecutar código arbitrario. Tiene una vulnerabilidad XSS reflejada allí mismo.

Cuando tengas

<svg width="<?php echo $_GET["name"];?>" height="100">
    <circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" />
</svg>

Establecer name será igual a 40"> <script> alert('XSS'); </script></svg> <svg width="100 . El XML resultante ahora será

<svg width="40"> <script> alert('XSS'); </script> </svg><svg width="100" height="100">
    <circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" />
</svg>

Y, por lo tanto, hemos inyectado una etiqueta <script> y podemos ejecutar código arbitrario en el lado del cliente.

SVG no es una "imagen muerta", está viva. Puede tener etiquetas de script allí, incluso los objetos "g" tienen controladores "onload". Hay un montón de ataques que pueden llevarse a cabo cuando controlas un SVG que muestra el usuario.

Lee también "La imagen que me devolvió la llamada" para obtener más información. Hay muchos más vectores de ataque descritos allí.

Por lo tanto, para que su aplicación sea segura, debe asegurarse de no poder salir de las citas.

    
respondido por el Maximilian Gerhardt 18.05.2016 - 18:06
fuente

Lea otras preguntas en las etiquetas