mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-30 08:30:57 +00:00
51 lines
5.1 KiB
Markdown
51 lines
5.1 KiB
Markdown
# SOME - Exécution de méthode de même origine
|
|
|
|
<details>
|
|
|
|
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
|
|
|
* Travaillez-vous dans une **entreprise de cybersécurité** ? Voulez-vous voir votre **entreprise annoncée dans HackTricks** ? ou voulez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
|
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
|
* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
|
* **Partagez vos astuces de piratage en soumettant des PR au** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **et au** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
|
|
|
</details>
|
|
|
|
## Exécution de méthode de même origine
|
|
|
|
Il y aura des occasions où vous pourrez exécuter un javascript limité sur une page. Par exemple, dans le cas où vous pouvez [**contrôler une valeur de rappel qui sera exécutée**](./#javascript-function).
|
|
|
|
Dans ces cas, l'une des meilleures choses que vous pourriez faire est d'**accéder au DOM pour appeler n'importe quelle** action sensible que vous pouvez trouver là-dedans (comme cliquer sur un bouton). Cependant, vous trouverez généralement cette vulnérabilité dans des **petits points d'extrémité sans rien d'intéressant dans le DOM**.
|
|
|
|
Dans ces scénarios, cette attaque sera très utile, car son objectif est de pouvoir **abuser de l'exécution JS limitée à l'intérieur d'un DOM à partir d'une page différente de même domaine** avec des actions beaucoup plus intéressantes.
|
|
|
|
Fondamentalement, le flux d'attaque est le suivant :
|
|
|
|
* Trouver un **rappel que vous pouvez abuser** (potentiellement limité à \[\w\\.\_]).
|
|
* S'il n'est pas limité et que vous pouvez exécuter n'importe quel JS, vous pourriez simplement abuser de cela comme un XSS régulier.
|
|
* Faire **ouvrir une page** contrôlée par l'**attaquant** à la **victime**
|
|
* La **page s'ouvrira elle-même** dans une **fenêtre différente** (la nouvelle fenêtre aura l'objet **`opener`** faisant référence à la première).
|
|
* La **page initiale** chargera la **page** où se trouve le **DOM intéressant**.
|
|
* La **deuxième page** chargera la **page vulnérable en abusant du rappel** et en utilisant l'objet **`opener`** pour **accéder et exécuter une action dans la page initiale** (qui contient maintenant le DOM intéressant).
|
|
|
|
{% hint style="danger" %}
|
|
Notez que même si la page initiale accède à une nouvelle URL après avoir créé la deuxième page, l'**objet `opener` de la deuxième page est toujours une référence valide à la première page dans le nouveau DOM**.
|
|
|
|
De plus, pour que la deuxième page puisse utiliser l'objet opener, **les deux pages doivent être dans la même origine**. C'est la raison pour laquelle, pour exploiter cette vulnérabilité, vous devez trouver une sorte de **XSS dans la même origine**.
|
|
{% endhint %}
|
|
|
|
### Exploitation
|
|
|
|
* Vous pouvez utiliser ce formulaire pour **générer un PoC** pour exploiter ce type de vulnérabilité : [https://www.someattack.com/Playground/SOMEGenerator](https://www.someattack.com/Playground/SOMEGenerator)
|
|
* Pour trouver un chemin DOM vers un élément HTML avec un clic, vous pouvez utiliser cette extension de navigateur : [https://www.someattack.com/Playground/targeting\_tool](https://www.someattack.com/Playground/targeting\_tool)
|
|
|
|
### Exemple
|
|
|
|
* Vous pouvez trouver un exemple vulnérable dans [https://www.someattack.com/Playground/](https://www.someattack.com/Playground/)
|
|
* Notez que dans cet exemple, le serveur **génère du code javascript** et **l'ajoute** à l'HTML en fonction du **contenu du paramètre de rappel** : `<script>opener.{callbacl_content}</script>` . C'est pourquoi dans cet exemple, vous n'avez pas besoin d'indiquer explicitement l'utilisation de `opener`.
|
|
* Voir également cette writeup CTF : [https://ctftime.org/writeup/36068](https://ctftime.org/writeup/36068)
|
|
|
|
## Références
|
|
|
|
* [https://conference.hitb.org/hitbsecconf2017ams/sessions/everybody-wants-some-advance-same-origin-method-execution/](https://conference.hitb.org/hitbsecconf2017ams/sessions/everybody-wants-some-advance-same-origin-method-execution/)
|