BrowExt - XSS Example
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)
У цій конфігурації реалізовано контентний скрипт, який створює Iframe, використовуючи URL з параметрами запиту як джерело Iframe:
Доступна для публіки HTML-сторінка, message.html
, призначена для динамічного додавання вмісту до тіла документа на основі параметрів у URL:
Зловмисний скрипт виконується на сторінці супротивника, модифікуючи параметр content
джерела Iframe, щоб ввести XSS payload. Це досягається шляхом оновлення джерела Iframe, щоб включити шкідливий скрипт:
Занадто поблажлива політика безпеки контенту, така як:
дозволяє виконання JavaScript, що робить систему вразливою до атак XSS.
Альтернативний підхід для провокації XSS полягає в створенні елемента Iframe і встановленні його джерела, щоб включити шкідливий скрипт як параметр content
:
Цей приклад був взятий з оригінального посту.
Основна проблема виникає з вразливості Cross-site Scripting (XSS), що базується на DOM, розташованої в /html/bookmarks.html
. Проблемний JavaScript, частина bookmarks.js
, детально описаний нижче:
Цей фрагмент отримує значення з поля введення txtName
і використовує конкатенацію рядків для генерації HTML, який потім додається до DOM за допомогою функції .append()
jQuery.
Зазвичай, Політика Безпеки Контенту (CSP) розширення Chrome запобігала б таким вразливостям. Однак, через послаблення CSP з ‘unsafe-eval’ та використання методів маніпуляції DOM jQuery (які використовують globalEval()
для передачі скриптів до eval()
під час вставки в DOM), експлуатація все ще можлива.
Хоча ця вразливість є значною, її експлуатація зазвичай залежить від взаємодії користувача: відвідування сторінки, введення XSS-пейлоада та активація кнопки “Додати”.
Щоб посилити цю вразливість, експлуатується вторинна вразливість clickjacking. Маніфест розширення Chrome демонструє розширену політику web_accessible_resources
:
Зокрема, сторінка /html/bookmarks.html
підлягає фреймінгу, отже, вразлива до clickjacking. Ця вразливість використовується для фреймінгу сторінки в межах сайту зловмисника, накладаючи на неї елементи DOM для обманного redesign інтерфейсу. Це маніпулювання призводить до того, що жертви ненавмисно взаємодіють з основним розширенням.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)