Diventa Autore per CoreTech | Scopri di più
18/11/21 CoreTech Blog
Cross-site Scripting (XSS) è un attacco di iniezione di codice lato client . L'autore dell'attacco mira a eseguire script dannosi in un browser Web della vittima includendo codice dannoso in una pagina Web o un'applicazione Web legittima. L'attacco vero e proprio si verifica quando la vittima visita la pagina Web o l'applicazione Web che esegue il codice dannoso. La pagina web o l'applicazione web diventa un veicolo per consegnare lo script dannoso al browser dell'utente. I veicoli vulnerabili comunemente utilizzati per gli attacchi di Cross-site Scripting sono forum, bacheche e pagine Web che consentono commenti.
Una pagina Web o un'applicazione Web è vulnerabile a XSS se utilizza input utente non sanificato nell'output che genera. Questo input dell'utente deve quindi essere analizzato dal browser della vittima. Gli attacchi XSS sono possibili in VBScript, ActiveX, Flash e persino CSS. Tuttavia, sono più comuni in JavaScript, principalmente perché JavaScript è fondamentale per la maggior parte delle esperienze di navigazione.
Se un utente malintenzionato può abusare di una vulnerabilità XSS su una pagina Web per eseguire JavaScript arbitrario nel browser di un utente, la sicurezza di quel sito Web vulnerabile o dell'applicazione Web vulnerabile e dei suoi utenti è stata compromessa. XSS non è un problema dell'utente come qualsiasi altra vulnerabilità di sicurezza. Se colpisce i tuoi utenti, colpisce te.
Il cross-site Scripting può anche essere usato per deturpare un sito web invece di prendere di mira l'utente. L'autore dell'attacco può utilizzare script iniettati per modificare il contenuto del sito Web o persino reindirizzare il browser a un'altra pagina Web, ad esempio una che contiene codice dannoso.
Le vulnerabilità XSS sono percepite come meno pericolose rispetto, ad esempio, alle vulnerabilità SQL Injection. Le conseguenze della capacità di eseguire JavaScript su una pagina Web potrebbero non sembrare disastrose all'inizio. La maggior parte dei browser Web esegue JavaScript in un ambiente strettamente controllato. JavaScript ha un accesso limitato al sistema operativo dell'utente e ai file dell'utente. Tuttavia, JavaScript può comunque essere pericoloso se utilizzato in modo improprio come parte di contenuti dannosi:
Quanto sopra, in combinazione con l'ingegneria sociale, consente ai criminali di eseguire attacchi avanzati tra cui il furto di cookie, l'installazione di trojan, keylogging, phishing e furto di identità. Le vulnerabilità XSS forniscono il terreno perfetto per intensificare gli attacchi a quelli più gravi. Cross-site Scripting può essere utilizzato anche in combinazione con altri tipi di attacchi, ad esempio Cross-Site Request Forgery (CSRF) .
Esistono diversi tipi di attacchi Cross-site Scripting: XSS archiviato/persistente, XSS riflesso/non persistente e XSS basato su DOM. Puoi leggere di più su di loro in un articolo intitolato Tipi di XSS.
Ci sono due fasi per un tipico attacco XSS:
Affinché il primo passaggio sia possibile, il sito Web vulnerabile deve includere direttamente l'input dell'utente nelle sue pagine. Un utente malintenzionato può quindi inserire una stringa dannosa che verrà utilizzata all'interno della pagina Web e trattata come codice sorgente dal browser della vittima. Esistono anche varianti di attacchi XSS in cui l'attaccante induce l'utente a visitare un URL utilizzando l'ingegneria sociale e il payload fa parte del collegamento su cui l'utente fa clic.
Per proteggerti da XSS, devi disinfettare il tuo input. Il codice dell'applicazione non dovrebbe mai inviare i dati ricevuti come input direttamente al browser senza verificarne la presenza di codice dannoso.