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

66 lines
5.2 KiB
Markdown
Raw Normal View History

2024-02-11 01:46:25 +00:00
# SOME - Wykonanie metody o tej samej domenie
2022-06-23 12:12:25 +00:00
<details>
<summary><strong>Nauka hakowania AWS od zera do bohatera z</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-06-23 12:12:25 +00:00
* Czy pracujesz w **firmie z branży cyberbezpieczeństwa**? Chcesz zobaczyć swoją **firmę reklamowaną na HackTricks**? lub chcesz uzyskać dostęp do **najnowszej wersji PEASS lub pobrać HackTricks w formacie PDF**? Sprawdź [**PLANY SUBSKRYPCYJNE**](https://github.com/sponsors/carlospolop)!
2024-02-11 01:46:25 +00:00
* Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family)
* Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
* **Dołącz do** [**💬**](https://emojipedia.org/speech-balloon/) [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** mnie na **Twitterze** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**repozytorium hacktricks**](https://github.com/carlospolop/hacktricks) **i** [**repozytorium hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
2022-06-23 12:12:25 +00:00
</details>
### [WhiteIntel](https://whiteintel.io)
<figure><img src="/.gitbook/assets/image (1224).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) to wyszukiwarka zasilana przez **dark web**, która oferuje **darmowe** funkcje do sprawdzania, czy firma lub jej klienci zostali **skompromitowani** przez **złośliwe oprogramowanie kradnące dane**.
Ich głównym celem jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za **darmo** pod adresem:
{% embed url="https://whiteintel.io" %}
---
2024-02-11 01:46:25 +00:00
## Wykonanie metody o tej samej domenie
2022-06-23 12:12:25 +00:00
Zdarzą się sytuacje, w których możesz wykonać pewien ograniczony kod JavaScript na stronie. Na przykład, gdy możesz [**kontrolować wartość wywołania zwrotnego, która zostanie wykonana**](./#javascript-function).
2022-06-23 12:12:25 +00:00
W takich przypadkach jedną z najlepszych rzeczy, które możesz zrobić, jest **uzyskanie dostępu do DOM, aby wywołać dowolną** wrażliwą akcję, którą znajdziesz tam (np. kliknięcie przycisku). Jednak zazwyczaj tę podatność znajdziesz w **małych punktach końcowych bez żadnych interesujących rzeczy w DOM**.
2022-06-23 12:12:25 +00:00
W takich scenariuszach ten atak będzie bardzo przydatny, ponieważ jego celem jest **wykorzystanie ograniczonego wykonania JS wewnątrz DOM z innej strony tej samej domeny** z dużą liczbą interesujących działań.
2022-06-23 12:12:25 +00:00
W zasadzie, przepływ ataku wygląda następująco:
2022-06-23 12:12:25 +00:00
* Znajdź **zwrotkę, którą możesz wykorzystać** (potencjalnie ograniczoną do \[\w\\.\_]).
* Jeśli nie jest ograniczona i możesz wykonać dowolny JS, możesz po prostu wykorzystać to jak zwykłe XSS
* Spowoduj, że **ofiara otworzy stronę** kontrolowaną przez **atakującego**
* **Strona otworzy się** w **innym oknie** (nowe okno będzie miało obiekt **`opener`** odnoszący się do początkowego)
2024-02-11 01:46:25 +00:00
* **Początkowa strona** załaduje **stronę**, na której znajduje się **interesujący DOM**.
* **Druga strona** załaduje **podatną stronę, wykorzystując zwrotkę** i korzystając z obiektu **`opener`** do **uzyskania dostępu i wykonania pewnej akcji w początkowej stronie** (która teraz zawiera interesujący DOM).
2022-06-23 12:12:25 +00:00
{% hint style="danger" %}
Zauważ, że nawet jeśli początkowa strona uzyska dostęp do nowego adresu URL po utworzeniu drugiej strony, **obiekt `opener` drugiej strony nadal jest ważnym odwołaniem do pierwszej strony w nowym DOM**.
2022-06-23 12:52:13 +00:00
Co więcej, aby druga strona mogła użyć obiektu opener, **obie strony muszą być w tej samej domenie**. To dlatego, aby wykorzystać tę podatność, musisz znaleźć pewnego rodzaju **XSS w tej samej domenie**.
2022-06-23 12:12:25 +00:00
{% endhint %}
2024-02-11 01:46:25 +00:00
### Wykorzystanie
2022-06-23 12:12:25 +00:00
* Możesz skorzystać z tego formularza, aby **wygenerować PoC** do wykorzystania tego rodzaju podatności: [https://www.someattack.com/Playground/SOMEGenerator](https://www.someattack.com/Playground/SOMEGenerator)
* Aby znaleźć ścieżkę DOM do elementu HTML z kliknięciem, możesz skorzystać z tego rozszerzenia przeglądarki: [https://www.someattack.com/Playground/targeting\_tool](https://www.someattack.com/Playground/targeting\_tool)
2022-06-23 12:12:25 +00:00
2024-02-11 01:46:25 +00:00
### Przykład
2022-06-23 12:12:25 +00:00
* Możesz znaleźć podatny przykład pod adresem [https://www.someattack.com/Playground/](https://www.someattack.com/Playground/)
* Zauważ, że w tym przykładzie serwer **generuje kod JavaScript** i **dodaje** go do HTML na podstawie **zawartości parametru zwrotki:** `<script>opener.{callbacl_content}</script>` . Dlatego w tym przykładzie nie trzeba wskazywać użycia `opener` explicite.
* Sprawdź również ten opis CTF: [https://ctftime.org/writeup/36068](https://ctftime.org/writeup/36068)
2022-06-23 12:12:25 +00:00
## Odnośniki
2022-06-23 12:12:25 +00:00
* [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/)