5.7 KiB
SOME - Esecuzione di metodi con la stessa origine
Impara l'hacking di AWS da zero a esperto con htARTE (HackTricks AWS Red Team Expert)!
- Lavori in una azienda di sicurezza informatica? Vuoi vedere la tua azienda pubblicizzata in HackTricks? O vuoi avere accesso all'ultima versione di PEASS o scaricare HackTricks in PDF? Controlla i PACCHETTI DI ABBONAMENTO!
- Scopri The PEASS Family, la nostra collezione di NFT esclusivi
- Ottieni il merchandising ufficiale di PEASS & HackTricks
- Unisciti al 💬 gruppo Discord o al gruppo Telegram o seguimi su Twitter 🐦@carlospolopm.
- Condividi i tuoi trucchi di hacking inviando PR al repo hacktricks e al repo hacktricks-cloud.
Esecuzione di metodi con la stessa origine
Ci saranno occasioni in cui puoi eseguire un po' di codice JavaScript limitato in una pagina. Ad esempio, nel caso in cui puoi controllare un valore di callback che verrà eseguito.
In questi casi, una delle migliori cose che puoi fare è accedere al DOM per chiamare qualsiasi azione sensibile che puoi trovare lì (come fare clic su un pulsante). Tuttavia, di solito troverai questa vulnerabilità in piccoli endpoint senza nulla di interessante nel DOM.
In questi scenari, questo attacco sarà molto utile, perché il suo obiettivo è quello di sfruttare l'esecuzione JS limitata all'interno di un DOM da una pagina diversa dello stesso dominio con azioni molto interessanti.
In sostanza, il flusso dell'attacco è il seguente:
- Trova una callback che puoi sfruttare (potenzialmente limitata a [\w\._]).
- Se non è limitata e puoi eseguire qualsiasi JS, puoi semplicemente sfruttarla come un normale XSS.
- Fai aprire una pagina controllata dall'attaccante alla vittima.
- La pagina si aprirà da sola in una finestra diversa (la nuova finestra avrà l'oggetto
opener
che fa riferimento a quella iniziale). - La pagina iniziale caricherà la pagina in cui si trova il DOM interessante.
- La seconda pagina caricherà la pagina vulnerabile sfruttando la callback e utilizzando l'oggetto
opener
per accedere ed eseguire un'azione nella pagina iniziale (che ora contiene il DOM interessante).
{% hint style="danger" %}
Nota che anche se la pagina iniziale accede a un nuovo URL dopo aver creato la seconda pagina, l'oggetto opener
della seconda pagina è ancora un riferimento valido alla prima pagina nel nuovo DOM.
Inoltre, affinché la seconda pagina possa utilizzare l'oggetto opener, entrambe le pagine devono essere nella stessa origine. Questa è la ragione per cui, per sfruttare questa vulnerabilità, è necessario trovare una sorta di XSS nella stessa origine. {% endhint %}
Sfruttamento
- Puoi utilizzare questo modulo per generare un PoC per sfruttare questo tipo di vulnerabilità: https://www.someattack.com/Playground/SOMEGenerator
- Per trovare un percorso DOM verso un elemento HTML con un clic, puoi utilizzare questa estensione del browser: https://www.someattack.com/Playground/targeting_tool
Esempio
- Puoi trovare un esempio vulnerabile su https://www.someattack.com/Playground/
- Nota che in questo esempio il server sta generando codice JavaScript e lo aggiunge all'HTML in base al contenuto del parametro di callback:
<script>opener.{callbacl_content}</script>
. Ecco perché in questo esempio non è necessario indicare esplicitamente l'uso diopener
. - Controlla anche questo writeup CTF: https://ctftime.org/writeup/36068
Riferimenti
Impara l'hacking di AWS da zero a esperto con htARTE (HackTricks AWS Red Team Expert)!
- Lavori in una azienda di sicurezza informatica? Vuoi vedere la tua azienda pubblicizzata in HackTricks? O vuoi avere accesso all'ultima versione di PEASS o scaricare HackTricks in PDF? Controlla i PACCHETTI DI ABBONAMENTO!
- Scopri The PEASS Family, la nostra collezione di NFT esclusivi
- Ottieni il merchandising ufficiale di PEASS & HackTricks
- Unisciti al 💬 gruppo Discord o al gruppo Telegram o seguimi su Twitter 🐦@carlospolopm.
- Condividi i tuoi trucchi di hacking inviando PR al repo hacktricks e al repo hacktricks-cloud.