hacktricks/pentesting-web/xss-cross-site-scripting/some-same-origin-method-execution.md

6.4 KiB

SOME - Esecuzione del Metodo Stesso Origine

Impara l'hacking AWS da zero a eroe con htARTE (Esperto Red Team AWS di HackTricks)!

WhiteIntel

WhiteIntel è un motore di ricerca alimentato dal dark web che offre funzionalità gratuite per verificare se un'azienda o i suoi clienti sono stati compromessi da malware ruba-informazioni.

Il loro obiettivo principale è combattere i takeover di account e gli attacchi ransomware derivanti da malware che rubano informazioni.

Puoi controllare il loro sito web e provare il loro motore gratuitamente su:

{% embed url="https://whiteintel.io" %}


Esecuzione del Metodo Stesso Origine

Ci saranno occasioni in cui potrai eseguire un po' di javascript limitato in una pagina. Ad esempio, nel caso in cui puoi controllare un valore di callback che verrà eseguito.

In quei casi, una delle migliori cose che potresti fare è accedere al DOM per chiamare qualsiasi azione sensibile che puoi trovare lì dentro (come cliccare 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 poter abusare dell'esecuzione JS limitata all'interno di un DOM da una pagina diversa dello stesso dominio con azioni molto interessanti.

Fondamentalmente, il flusso dell'attacco è il seguente:

  • Trova un callback che puoi abusare (potenzialmente limitato a [\w\._]).
  • Se non è limitato e puoi eseguire qualsiasi JS, potresti semplicemente abusarne come un normale XSS
  • Fai aprire una pagina vittima controllata dall'attaccante
  • 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 dove si trova il DOM interessante.
  • La seconda pagina caricherà la pagina vulnerabile abusando del callback e utilizzando l'oggetto opener per accedere ed eseguire qualche 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. Questo è il motivo per cui, per abusare di questa vulnerabilità, è necessario trovare qualche tipo di XSS nella stessa origine. {% endhint %}

Sfruttamento

Esempio

  • Puoi trovare un esempio vulnerabile in https://www.someattack.com/Playground/
  • Nota che in questo esempio il server genera codice javascript e lo aggiunge all'HTML in base al contenuto del parametro di callback: <script>opener.{callbacl_content}</script> . Per questo motivo in questo esempio non è necessario indicare esplicitamente l'uso di opener.
  • Controlla anche questo CTF writeup: https://ctftime.org/writeup/36068

Riferimenti

Impara l'hacking AWS da zero a eroe con htARTE (Esperto Red Team AWS di HackTricks)!