hacktricks/pentesting-web/xss-cross-site-scripting/dom-invader.md
2024-03-29 19:49:46 +01:00

10 KiB
Raw Blame History

DOM Invader

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

DOM Invader

DOM Invader - це інструмент браузера, встановлений у вбудований браузер Burp. Він допомагає виявляти уразливості DOM XSS, використовуючи різні джерела та стоки, включаючи веб-повідомлення та забруднення прототипів. Цей інструмент встановлений як розширення.

DOM Invader інтегрує вкладку у панель DevTools браузера, що дозволяє:

  1. Визначення контрольованих стоків на веб-сторінці для тестування DOM XSS, надаючи контекст та деталі санітаріїзації.
  2. Логування, редагування та повторне відправлення веб-повідомлень, відправлених за допомогою методу postMessage() для тестування DOM XSS. DOM Invader також може автоматично виявляти уразливості за допомогою спеціально створених веб-повідомлень.
  3. Виявлення джерел забруднення прототипів на клієнтському боці та сканування контрольованих гаджетів, відправлених до ризикованих стоків.
  4. Визначення уразливостей забруднення DOM.

Увімкніть його

У вбудованому браузері Burp перейдіть до розширення Burp та увімкніть його:

Тепер оновіть сторінку, і в Dev Tools ви знайдете вкладку DOM Invader:

Впровадження канарки

На попередньому зображенні ви можете побачити випадкову групу символів, це канарка. Тепер ви повинні почати впроваджувати її в різні частини веб-сторінки (параметри, форми, URL...) і кожного разу клікайте на пошук. DOM Invader перевірить, чи канарка потрапила в який-небудь цікавий сток, який можна експлуатувати.

Крім того, опції Inject URL params та Inject forms автоматично відкриють нову вкладку, впроваджуючи канарку в кожний URL-параметр та форму, яку вони знаходять.

Впровадження порожньої канарки

Якщо ви просто хочете знайти потенційні стоки, які можуть бути на сторінці, навіть якщо їх не можна експлуатувати, ви можете шукати порожню канарку.

Відправлення повідомлень

DOM Invader дозволяє тестувати DOM XSS за допомогою веб-повідомлень з такими функціями:

  1. Логування веб-повідомлень, відправлених за допомогою postMessage(), схоже на логування історії запитів/відповідей HTTP Burp Proxy.
  2. Модифікація та повторне відправлення веб-повідомлень для ручного тестування DOM XSS, схоже на функцію Burp Repeater.
  3. Автоматичне змінення та відправлення веб-повідомлень для вивчення DOM XSS.

Деталі повідомлення

Докладну інформацію про кожне повідомлення можна переглянути, натиснувши на нього, включаючи те, чи клієнтський JavaScript має доступ до властивостей origin, data або source повідомлення.

  • origin : Якщо інформація про походження повідомлення не перевірена, ви можете відправляти міжсайтові повідомлення до обробника подій з будь-якого зовнішнього домену. Але якщо вона перевірена, це все одно може бути небезпечно.
  • data: Це місце, куди відправляється навантаження. Якщо ці дані не використовуються, сток є непотрібним.
  • source: Оцінює, чи властивість джерела, яка зазвичай посилається на iframe, перевірена, а не походження. Навіть якщо це перевірено, це не гарантує, що перевірка не може бути обійдена.

Відповідь на повідомлення

  1. У перегляді Повідомлення клацніть на будь-яке повідомлення, щоб відкрити діалогове вікно деталей повідомлення.
  2. Редагуйте поле Дані за потребою.
  3. Клацніть Відправити.

Забруднення прототипів

DOM Invader також може шукати уразливості забруднення прототипів. Спочатку вам потрібно ввімкнути його:

Потім він шукатиме джерела, які дозволяють додавати довільні властивості до Object.prototype.

Якщо щось знайдено, кнопка Тестування з'явиться для перевірки знайденого джерела. Клацніть на неї, з'явиться нова вкладка, створіть об'єкт у консолі та перевірте, чи існує testproperty:

let b = {}
b.testproperty

Після того, як ви знайшли джерело, ви можете сканувати гаджет:

  1. Нова вкладка відкривається DOM Invader, коли кнопка Сканувати гаджети, яку можна знайти поруч із будь-яким виявленим джерелом забруднення прототипу в DOM перегляді, натиснута. Починається сканування підходящих гаджетів.
  2. Тим часом, на тій же вкладці, вкладка DOM Invader повинна бути відкрита в панелі DevTools. Після завершення скану, будь-які стоки, до яких можна отримати доступ через виявлені гаджети, відображаються в DOM перегляді. Наприклад, властивість гаджета з назвою html, яка передається до стоку innerHTML, показана в прикладі нижче.

Забруднення DOM

На попередньому зображенні можна побачити, що можна ввімкнути сканування забруднення DOM. Після цього DOM Invader почне шукати вразливості забруднення DOM.

Посилання