Clickjacking
Usa Trickest per costruire facilmente e automatizzare flussi di lavoro supportati dagli strumenti comunitari più avanzati al mondo. Ottieni l'accesso oggi:
Cos'è il Clickjacking
In un attacco di clickjacking, un utente viene ingannato a cliccare su un elemento in una pagina web che è invisibile o mascherato come un elemento diverso. Questa manipolazione può portare a conseguenze indesiderate per l'utente, come il download di malware, il reindirizzamento a pagine web dannose, la fornitura di credenziali o informazioni sensibili, trasferimenti di denaro o l'acquisto online di prodotti.
Trucco per precompilare moduli
A volte è possibile riempire il valore dei campi di un modulo utilizzando i parametri GET durante il caricamento di una pagina. Un attaccante potrebbe abusare di questo comportamento per compilare un modulo con dati arbitrari e inviare il payload di clickjacking in modo che l'utente prema il pulsante Invia.
Compilare il modulo con Drag&Drop
Se hai bisogno che l'utente compili un modulo ma non vuoi chiedergli direttamente di scrivere alcune informazioni specifiche (come l'email e/o la password specifica che conosci), puoi semplicemente chiedergli di Trascinare e rilasciare qualcosa che scriverà i tuoi dati controllati come in questo esempio.
Payload di base
Payload a più passaggi
Payload Drag&Drop + Click
XSS + Clickjacking
Se hai identificato un attacco XSS che richiede all'utente di fare clic su un elemento per attivare l'XSS e la pagina è vulnerabile al clickjacking, potresti sfruttarlo per ingannare l'utente affinché faccia clic sul pulsante/link. Esempio: Hai trovato un self XSS in alcuni dettagli privati dell'account (dettagli che solo tu puoi impostare e leggere). La pagina con il modulo per impostare questi dettagli è vulnerabile al Clickjacking e puoi prepopolare il modulo con i parametri GET. __Un attaccante potrebbe preparare un attacco di Clickjacking a quella pagina prepopolando il modulo con il payload XSS e ingannando l'utente affinché invii il modulo. Quindi, quando il modulo viene inviato e i valori vengono modificati, l'utente eseguirà l'XSS.
Strategie per Mitigare il Clickjacking
Difese Lato Client
Gli script eseguiti lato client possono eseguire azioni per prevenire il Clickjacking:
Assicurarsi che la finestra dell'applicazione sia la finestra principale o superiore.
Rendere tutti i frame visibili.
Impedire clic sui frame invisibili.
Rilevare e avvisare gli utenti di possibili tentativi di Clickjacking.
Tuttavia, questi script di frame-busting potrebbero essere elusi:
Impostazioni di Sicurezza dei Browser: Alcuni browser potrebbero bloccare questi script in base alle loro impostazioni di sicurezza o alla mancanza di supporto JavaScript.
Attributo HTML5 iframe
sandbox
: Un attaccante può neutralizzare gli script di frame buster impostando l'attributosandbox
con i valoriallow-forms
oallow-scripts
senzaallow-top-navigation
. Questo impedisce all'iframe di verificare se è la finestra principale, ad esempio,
I valori allow-forms
e allow-scripts
abilitano azioni all'interno dell'iframe disabilitando la navigazione di alto livello. Per garantire la funzionalità prevista del sito preso di mira, potrebbero essere necessarie autorizzazioni aggiuntive come allow-same-origin
e allow-modals
, a seconda del tipo di attacco. I messaggi nella console del browser possono guidare su quali autorizzazioni consentire.
Difese lato server
X-Frame-Options
L'header di risposta HTTP X-Frame-Options
informa i browser sulla legittimità del rendering di una pagina in un <frame>
o <iframe>
, contribuendo a prevenire il Clickjacking:
X-Frame-Options: deny
- Nessun dominio può inquadrare il contenuto.X-Frame-Options: sameorigin
- Solo il sito corrente può inquadrare il contenuto.X-Frame-Options: allow-from https://trusted.com
- Solo l'URI specificato può inquadrare la pagina.Notare le limitazioni: se il browser non supporta questa direttiva, potrebbe non funzionare. Alcuni browser preferiscono la direttiva frame-ancestors di CSP.
Direttiva frame-ancestors di Content Security Policy (CSP)
La direttiva frame-ancestors
in CSP è il metodo consigliato per la protezione dal Clickjacking:
frame-ancestors 'none'
- Simile aX-Frame-Options: deny
.frame-ancestors 'self'
- Simile aX-Frame-Options: sameorigin
.frame-ancestors trusted.com
- Simile aX-Frame-Options: allow-from
.
Ad esempio, la seguente CSP consente solo l'inquadratura dallo stesso dominio:
Content-Security-Policy: frame-ancestors 'self';
Ulteriori dettagli e esempi complessi possono essere trovati nella documentazione CSP frame-ancestors e nella documentazione Mozilla CSP frame-ancestors.
Content Security Policy (CSP) con child-src
e frame-src
child-src
e frame-src
Content Security Policy (CSP) è una misura di sicurezza che aiuta a prevenire il Clickjacking e altri attacchi di iniezione di codice specificando da quali fonti il browser dovrebbe consentire il caricamento di contenuti.
Direttiva frame-src
frame-src
Definisce le fonti valide per i frame.
Più specifica della direttiva
default-src
.
Questo policy consente frame dalla stessa origine (self) e da https://trusted-website.com.
Direttiva child-src
child-src
Introdotto in CSP livello 2 per impostare origini valide per i web worker e i frame.
Funziona come fallback per frame-src e worker-src.
Questo policy consente frame e workers dalla stessa origine (self) e da https://trusted-website.com.
Note sull'Utilizzo:
Deprecazione: child-src sta venendo gradualmente sostituito da frame-src e worker-src.
Comportamento di fallback: Se frame-src è assente, child-src viene utilizzato come fallback per i frame. Se entrambi sono assenti, viene utilizzato default-src.
Definizione di Origine Rigorosa: Includere solo origini attendibili nelle direttive per prevenire l'exploit.
Script JavaScript di Rottura Frame
Anche se non completamente sicuri, gli script di rottura frame basati su JavaScript possono essere utilizzati per impedire che una pagina web venga inserita in un frame. Esempio:
Utilizzo dei Token Anti-CSRF
Validazione del Token: Utilizzare token anti-CSRF nelle applicazioni web per garantire che le richieste che modificano lo stato siano effettuate intenzionalmente dall'utente e non attraverso una pagina Clickjacked.
Riferimenti
Utilizza Trickest per costruire facilmente e automatizzare flussi di lavoro supportati dagli strumenti della community più avanzati al mondo. Ottieni l'accesso oggi:
Last updated