Clickjacking
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Use Trickest to easily build and automate workflows powered by the world's most advanced community tools. Get Access Today:
In un attacco di clickjacking, un utente viene ingannato a cliccare su un elemento di una pagina web che è invisibile o travestito da un altro elemento. Questa manipolazione può portare a conseguenze indesiderate per l'utente, come il download di malware, il reindirizzamento a pagine web malevole, la fornitura di credenziali o informazioni sensibili, trasferimenti di denaro o l'acquisto online di prodotti.
A volte è possibile compilare il valore dei campi di un modulo utilizzando parametri GET durante il caricamento di una pagina. Un attaccante può abusare di questo comportamento per riempire un modulo con dati arbitrari e inviare il payload di clickjacking affinché l'utente prema il pulsante Invia.
Se hai bisogno che l'utente compili un modulo ma non vuoi chiedergli direttamente di scrivere alcune informazioni specifiche (come l'email o una password specifica che conosci), puoi semplicemente chiedergli di Drag&Drop qualcosa che scriverà i tuoi dati controllati come in questo esempio.
Se hai identificato un attacco XSS che richiede che un utente clicchi su qualche elemento per attivare l'XSS e la pagina è vulnerabile al clickjacking, potresti abusarne per ingannare l'utente a cliccare sul pulsante/link. Esempio: &#xNAN;You 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 precompilare il modulo con i parametri GET. __Un attaccante potrebbe preparare un attacco Clickjacking a quella pagina precompilando il modulo con il payload XSS e ingannando l'utente a inviare il modulo. Quindi, quando il modulo viene inviato e i valori vengono modificati, l'utente eseguirà l'XSS.
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.
Prevenire clic su frame invisibili.
Rilevare e avvisare gli utenti su potenziali tentativi di Clickjacking.
Tuttavia, questi script di frame-busting possono 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 per JavaScript.
Attributo sandbox
dell'iframe HTML5: Un attaccante può neutralizzare gli script di frame buster impostando l'attributo sandbox
con valori allow-forms
o allow-scripts
senza allow-top-navigation
. Questo impedisce all'iframe di verificare se è la finestra superiore, ad esempio,
The allow-forms
e allow-scripts
valori abilitano azioni all'interno dell'iframe disabilitando la navigazione di livello superiore. Per garantire la funzionalità prevista del sito target, potrebbero essere necessarie autorizzazioni aggiuntive come allow-same-origin
e allow-modals
, a seconda del tipo di attacco. I messaggi della console del browser possono guidare quali autorizzazioni consentire.
L'intestazione di risposta HTTP X-Frame-Options
informa i browser sulla legittimità di rendering di una pagina in un <frame>
o <iframe>
, aiutando a prevenire il Clickjacking:
X-Frame-Options: deny
- Nessun dominio può incapsulare il contenuto.
X-Frame-Options: sameorigin
- Solo il sito attuale può incapsulare il contenuto.
X-Frame-Options: allow-from https://trusted.com
- Solo l' 'uri' specificato può incapsulare la pagina.
Nota le limitazioni: se il browser non supporta questa direttiva, potrebbe non funzionare. Alcuni browser preferiscono la direttiva CSP frame-ancestors.
La direttiva frame-ancestors
nella CSP è il metodo consigliato per la protezione dal Clickjacking:
frame-ancestors 'none'
- Simile a X-Frame-Options: deny
.
frame-ancestors 'self'
- Simile a X-Frame-Options: sameorigin
.
frame-ancestors trusted.com
- Simile a X-Frame-Options: allow-from
.
Ad esempio, la seguente CSP consente solo l'incapsulamento dallo stesso dominio:
Content-Security-Policy: frame-ancestors 'self';
Ulteriori dettagli ed esempi complessi possono essere trovati nella documentazione frame-ancestors CSP e nella documentazione frame-ancestors di Mozilla.
child-src
e frame-src
La Content Security Policy (CSP) è una misura di sicurezza che aiuta a prevenire il Clickjacking e altri attacchi di iniezione di codice specificando quali fonti il browser dovrebbe consentire per caricare contenuti.
frame-src
Definisce fonti valide per i frame.
Più specifica della direttiva default-src
.
Questa politica consente frame dalla stessa origine (self) e https://trusted-website.com.
child-src
Introdotta nel livello 2 di CSP per impostare fonti valide per i web worker e i frame.
Funziona come un fallback per frame-src e worker-src.
Questa politica consente frame e worker dalla stessa origine (self) e https://trusted-website.com.
Note sull'uso:
Deprecazione: child-src è in fase di eliminazione a favore di 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 rigorosa della sorgente: Includere solo sorgenti fidate nelle direttive per prevenire sfruttamenti.
Sebbene non siano completamente infallibili, gli script di frame-busting basati su JavaScript possono essere utilizzati per impedire che una pagina web venga incapsulata. Esempio:
Validazione del Token: Utilizzare i token anti-CSRF nelle applicazioni web per garantire che le richieste che modificano lo stato siano effettuate intenzionalmente dall'utente e non tramite una pagina Clickjacked.
Utilizza Trickest per costruire e automatizzare flussi di lavoro alimentati dagli strumenti comunitari più avanzati al mondo. Accedi oggi:
Impara e pratica il Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Impara e pratica il Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)