Gli scanner di vulnerabilità delle app Web utilizzano in genere una combinazione di rilevamento di vulnerabilità attive e passive, con la maggior parte dei test eseguiti attivamente. Ad esempio, se lo scanner richiede una pagina e restituisce un cookie senza il flag "sicuro" che è essenzialmente un test passivo. Ma se lo scanner sta cercando di trovare una vulnerabilità XSS in un parametro, probabilmente invierà diverse centinaia di richieste diverse per testare le variazioni di attacco. Ecco perché i test attivi sono più importanti.
Alcuni scanner possono essere inseriti in modalità passiva in cui eseguono normalmente la scansione dell'app o monitorano l'utilizzo dell'app per rilevare le vulnerabilità. Come ci si potrebbe aspettare, questo ha un impatto minore sull'app (ed è meno rilevabile) ma produce meno risultati.
I payload degli attacchi sono generalmente non dannosi, ma alcuni di questi dipendono da come l'app reagisce ad esso. Ho visto crash di app web mal progettate quando ricevono dati imprevisti. Per testare qualcosa come un attacco XSS lo scanner potrebbe semplicemente provare a iniettare tag di script di base con un avviso per vedere se funziona. Normalmente non inseriranno un registratore di tasti, un falso modulo di accesso, ecc.
Per quanto riguarda la domanda di iniezione SQL, in genere non dovrebbero usare comandi SQL che cancellano dati o cambiano configurazioni, ma ciò può dipendere dal criterio di scansione che si usa. Alcuni scanner hanno politiche dannose o DoS che potrebbero essere più dirompenti. È anche possibile che il tuo database abbia molti record aggiunti dallo scanner anche se nessuno dei dati precedenti è stato manipolato.