Svg width element XSS

-1

Sto lavorando su un generatore di immagini svg. Ora voglio impostare il valore di larghezza e altezza dell'utente.

Un utente può sfruttare questi tag elemento? E cosa dovrei fare per renderlo sicuro?

<?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>
    
posta Peter234 18.05.2016 - 17:43
fonte

1 risposta

0

Sì, il tuo SVG può essere facilmente modificato per eseguire codice arbitrario. Hai una vulnerabilità XSS riflessa proprio lì.

Quando hai

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

Imposta name uguale a 40"> <script> alert('XSS'); </script></svg> <svg width="100 . L'XML risultante ora sarà

<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>

E così, abbiamo iniettato un tag <script> e possiamo eseguire codice arbitrario sul lato client.

SVG non è una "immagine morta", è viva. Puoi avere tag di script, anche gli oggetti "g" hanno gestori "onload". C'è un sacco di attacchi che possono essere eseguiti quando controlli un SVG mostrato dall'utente.

Leggi anche "L'immagine che mi ha richiamato" per ulteriori informazioni. Ci sono molti altri vettori di attacco descritti qui.

Quindi, per rendere sicura la tua applicazione, devi assicurarti di non riuscire a superare le virgolette.

    
risposta data 18.05.2016 - 18:06
fonte

Leggi altre domande sui tag