Sto testando un attacco di iniezione XSS di base. Date le immagini qui sotto, sembra che questo sito sia vulnerabile a XSS?
La whitelist dei personaggi è ancora la migliore pratica contro gli attacchi XSS?
Dalle tue schermate, questa pagina non sembra essere vulnerabile a XSS.
Il modo corretto per prevenire XSS è usando la codifica dell'output . Se un utente digita <script> e la pagina inserisce <script> nel codice sorgente HTML, è vulnerabile a XSS. Se invece codifica quell'input dell'utente e inserisce <script> nel codice sorgente HTML, non viene interpretato come HTML ma come testo <script> .
Sembra che il tuo sito esegua questa codifica due volte anziché una volta e ciò si traduce nella visualizzazione dell'HTML codificato nei campi di testo.
L'esempio nella domanda sembra mostrare che stanno impedendo l'utilizzo dei tag bersagliandoli. Per esempio. <script> diventando <script> . Tuttavia, se UTF lo codifica e quindi SQL lo codifica in qualcos'altro, non è tecnicamente sicuro. Pertanto, è possibile utilizzare un diverso tipo di metodo di iniezione, che è un SQL injection e può essere sfruttato da valori esadecimali, come mostrato di seguito:
Per prima cosa scegli qualcosa da codificare:
Questoverràquindicodificatoperformarequesto:

Quindipuoieseguirel'attacco:
EccounesempiodiquestodaOWASP,duranteiltestperunapossibileiniezione:
Selectuserfromuserswherename=unhex('726F6F74')Qui'root'èmostratocomevaloreesadecimale726F6F74
Fonti:
HTML.Encode():
Iniezione SQL: link
Esempio OWASP1: link
Evasione OWASP: link
Un altro esempio può essere trovato qui: link
Leggi altre domande sui tag web-application xss