SOME - Same Origin Method Execution
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice 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
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)