6.7 KiB
Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!
Altri modi per supportare HackTricks:
- Se vuoi vedere la tua azienda pubblicizzata su HackTricks o scaricare HackTricks in PDF controlla i PACCHETTI DI ABBONAMENTO!
- Ottieni il merchandising ufficiale di PEASS & HackTricks
- Scopri The PEASS Family, la nostra collezione di NFT esclusivi
- Unisciti al 💬 gruppo Discord o al gruppo Telegram o seguici su Twitter 🐦 @carlospolopm.
- Condividi i tuoi trucchi di hacking inviando PR a HackTricks e HackTricks Cloud su GitHub.
Descrizione
In una situazione in cui un attaccante può controllare l'argomento href
di un tag <a
con l'attributo target="_blank" rel="opener"
che verrà cliccato da una vittima, l'attaccante può indirizzare questo link a un sito web sotto il suo controllo (un sito web malizioso). Quindi, una volta che la vittima clicca sul link e accede al sito web dell'attaccante, questo sito web malizioso sarà in grado di controllare la pagina originale tramite l'oggetto javascript window.opener
.
Se la pagina non ha rel="opener"
ma contiene target="_blank"
e non ha rel="noopener"
, potrebbe essere vulnerabile.
Un modo comune per sfruttare questo comportamento sarebbe cambiare la posizione del sito web originale tramite window.opener.location = https://attacker.com/victim.html
verso un sito web controllato dall'attaccante che sembra quello originale, in modo da imitare il modulo di accesso del sito web originale e chiedere le credenziali all'utente.
Tuttavia, nota che poiché l'attaccante ora può controllare l'oggetto finestra del sito web originale, può sfruttarlo in altri modi per eseguire attacchi più furtivi (ad esempio modificando gli eventi javascript per esfiltrare informazioni verso un server controllato da lui?)
Panoramica
Con collegamento di ritorno
Collegamento tra pagine padre e figlio quando non viene utilizzato l'attributo di prevenzione:
Senza collegamento di ritorno
Collegamento tra pagine padre e figlio quando viene utilizzato l'attributo di prevenzione:
Esempi
Crea le seguenti pagine in una cartella e avvia un server web con python3 -m http.server
Quindi, accedi a http://127.0.0.1:8000/
vulnerable.html, clicca sul link e nota come l'URL del sito web originale cambia.
{% code title="vulnerable.html" %}
<!DOCTYPE html>
<html>
<body>
<h1>Victim Site</h1>
<a href="http://127.0.0.1:8000/malicious.html" target="_blank" rel="opener">Controlled by the attacker</a>
</body>
</html>
{% code title="malicious.html" %}
<!DOCTYPE html>
<html>
<body>
<script>
window.opener.location = "http://127.0.0.1:8000/malicious_redir.html";
</script>
</body>
</html>
{% code title="malicious_redir.html" %}
<!DOCTYPE html>
<html>
<body>
<h1>New Malicious Site</h1>
</body>
</html>
{% endcode %}
Proprietà accessibili
Nello scenario in cui si verifica un accesso cross-origin (accesso tra domini diversi), le proprietà dell'istanza della classe JavaScript window, a cui si fa riferimento tramite il riferimento dell'oggetto JavaScript opener, che possono essere accessibili da un sito maligno sono limitate alle seguenti:
opener.closed
: Questa proprietà viene utilizzata per determinare se una finestra è stata chiusa, restituendo un valore booleano.opener.frames
: Questa proprietà fornisce accesso a tutti gli elementi iframe all'interno della finestra corrente.opener.length
: Questa proprietà restituisce il numero di elementi iframe presenti nella finestra corrente.opener.opener
: È possibile ottenere un riferimento alla finestra che ha aperto la finestra corrente tramite questa proprietà.opener.parent
: Questa proprietà restituisce la finestra padre della finestra corrente.opener.self
: Questa proprietà fornisce accesso alla finestra corrente stessa.opener.top
: Questa proprietà restituisce la finestra del browser in primo piano.
Tuttavia, nei casi in cui i domini sono identici, il sito maligno ottiene accesso a tutte le proprietà esposte dall'oggetto di riferimento JavaScript window.
Prevenzione
Le informazioni sulla prevenzione sono documentate nel HTML5 Cheat Sheet.
Riferimenti
Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!
Altri modi per supportare HackTricks:
- Se vuoi vedere la tua azienda pubblicizzata in HackTricks o scaricare HackTricks in PDF Controlla i PACCHETTI DI ABBONAMENTO!
- Ottieni il merchandising ufficiale di PEASS & HackTricks
- Scopri The PEASS Family, la nostra collezione di esclusive NFT
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @carlospolopm.
- Condividi i tuoi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud github repos.