Supponiamo che un utente malintenzionato desideri che un utente faccia clic su qualcosa su victim.com
.
Per questo, hanno bisogno di posizionare un iframe
da qualche parte - ovunque - dove la vittima lo vedrà. Non importa dove è collocato o come è stato collocato lì.
Questo non è richiesto, ma idealmente, l'attaccante può anche eseguire JavaScript qui, in quanto aumenta le possibilità di sfruttamento con successo, specialmente con attacchi multi-click (è possibile "seguire" il puntatore del mouse e quindi assicurarsi che qualsiasi clic clic sulla posizione desiderata del sito web victim.com).
Questi sono i modi in cui posso pensare che un attaccante possa consegnare un iframe a una vittima:
- L'attaccante dirotta un sito web,
good.com
, sanno che la loro vittima visiterà. Questo può accadere in modi diversi; il sito Web potrebbe consentire la creazione di iframe o l'autore dell'attacco potrebbe aver compromesso il server
- L'autore dell'attacco crea il proprio sito web,
evil.com
, posiziona il proprio payload di ClickJacking su di esso e fa visitare la vittima inviando loro un collegamento.
- Email: alcuni client di posta elettronica potrebbero visualizzare (un sottoinsieme di) codice HTML (questa è solo una sottocategoria del primo punto)
- L'autore dell'attacco potrebbe essere in grado di posizionare un iframe su
victim.com
. Se questo è il caso, il problema probabilmente si estende oltre ClickJacking (almeno HTML injection, probabilmente XSS).
- L'autore dell'attacco potrebbe essere in grado di modificare l'HTML consegnato nel trasferimento (mitm) o sul lato client e quindi iniettare un iframe. Ma ancora una volta, se è possibile, ci sono conseguenze molto più grandi di ClickJacking.
Ecco un esempio molto semplice di come potrebbe apparire un payload di ClickJacking:
// placed anywhere, eg http://evil.com/clickjacking.html
<div style="position: absolute; left: 50px; top: 50px; pointer-events: none;">
Click Me!
</div>
<iframe style="opacity: 0;" height="500" width="600" scrolling="no" src="http://victim.com/vulnerable.html>
</iframe>
Quindi non è necessario che un utente malintenzionato modifichi l'HTML di victim.com
(non all'origine, né sul lato client).