Trova e risolvi XSS in questo codice

-2

Ho bisogno di trovare un XSS e proporre una soluzione nel seguente codice:

<form action="#" method="post">
<input type="hidden" name="id" value="<?=$id?>"><br>
<textarea name="body"><?=$text?></textarea><br>
<input type="submit" value="Send"><br>
</form><br>

Questo fa parte di una bacheca. Il submit memorizzerà il messaggio in un database e poi c'è un'altra funzione che legge questo DB e copia il contenuto del registro senza sanitizzarlo, quindi qualunque cosa inserirò in $ verrà eseguito, quindi vulnerabile a XSS. Ho aggiunto prima questa riga $text = htmlspecialchars($text); , ma non sta sfuggendo alla stringa, quindi ancora lo script viene eseguito.

Inoltre, $ id è vulnerabile, vero? Come posso sfruttarlo? Perché ho provato ma senza fortuna.

    
posta yzT 23.05.2014 - 11:34
fonte

3 risposte

0

Ho scoperto che l'unico XSS che il formatore si aspettava era il $ id, facilmente risolto usando htmlspecialchars($id)

    
risposta data 03.06.2014 - 10:19
fonte
1

Come ha detto @David_Houde, senza il codice lato server non è possibile scoprire come sfruttare la vulnerabilità XSS. Ma se non hai idea del filtro usato sul lato server (test black-box) puoi provare a indovinarlo. Puoi utilizzare il XS Filter Evasion Cheat Sheet fornito da OWASP.

    
risposta data 23.05.2014 - 15:48
fonte
-1

Solitamente questo problema viene risolto rimuovendo completamente tutti e HTML, in PHP (vedo che usi una funzione PHP) ciò avviene tramite la funzione strip_tags . Questo può togliere anche i tag di formattazione desiderabili, quindi se hai bisogno di una certa misura della formattazione del testo, devi averli re-introdotti con qualche tipo di markup (come le schede StackExchange usano: bold , italic e così via), o usando più specializzate funzioni di tag stripping.

Tieni presente che alcune di tali implementazioni sono errate e potrebbero essere a loro volta abusate inviando, ad esempio, tag nidificati (ad esempio <<script>script> ) o sequenze UTF8 predisposte. Potresti voler testare l'implementazione scelta rispetto a un corpus di attacchi noti.

    
risposta data 23.05.2014 - 13:22
fonte

Leggi altre domande sui tag