SOME - Same Origin Method Execution
Last updated
Last updated
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Існують випадки, коли ви можете виконати обмежений javascript на сторінці. Наприклад, у випадку, коли ви можете контролювати значення зворотного виклику, яке буде виконано.
У таких випадках одне з найкращих, що ви можете зробити, це доступитися до DOM, щоб викликати будь-яку чутливу дію, яку ви можете знайти там (наприклад, натискаючи кнопку). Однак зазвичай ви знайдете цю вразливість у малих кінцевих точках без будь-яких цікавих речей у DOM.
У таких сценаріях ця атака буде дуже корисною, оскільки її мета полягає в тому, щоб зловживати обмеженим виконанням JS всередині DOM з іншої сторінки з того ж домену з набагато цікавими діями.
В основному, потік атаки виглядає наступним чином:
Знайти зворотний виклик, яким ви можете зловживати (потенційно обмежений до [\w\._]).
Якщо він не обмежений і ви можете виконати будь-який JS, ви можете просто зловживати цим як звичайним XSS.
Змусити жертву відкрити сторінку, контрольовану зловмисником.
Сторінка відкриється сама в іншому вікні (нове вікно матиме об'єкт opener
, що посилається на початкове).
Початкова сторінка завантажить сторінку, де знаходиться цікавий DOM.
Друга сторінка завантажить вразливу сторінку, зловживаючи зворотним викликом і використовуючи об'єкт opener
, щоб доступитися та виконати деяку дію на початковій сторінці (яка тепер містить цікавий DOM).
Зверніть увагу, що навіть якщо початкова сторінка отримує доступ до нового URL після створення другої сторінки, об'єкт opener
другої сторінки все ще є дійсним посиланням на першу сторінку в новому DOM.
Більше того, для того щоб друга сторінка могла використовувати об'єкт opener, обидві сторінки повинні бути в одному походженні. Це причина, чому, щоб зловживати цією вразливістю, вам потрібно знайти якийсь вид XSS в одному походженні.
Ви можете використовувати цю форму, щоб згенерувати PoC для експлуатації цього типу вразливості: https://www.someattack.com/Playground/SOMEGenerator
Щоб знайти шлях DOM до HTML-елемента з кліком, ви можете використовувати це розширення для браузера: https://www.someattack.com/Playground/targeting_tool
Ви можете знайти вразливий приклад на https://www.someattack.com/Playground/
Зверніть увагу, що в цьому прикладі сервер генерує javascript код і додає його до HTML на основі вмісту параметра зворотного виклику: <script>opener.{callbacl_content}</script>
. Ось чому в цьому прикладі вам не потрібно явно вказувати використання opener
.
Також перевірте цей звіт CTF: https://ctftime.org/writeup/36068
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)