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)