DOM Invader

Support HackTricks

DOM Invader

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

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

  1. Ідентифікацію контрольованих приймачів на веб-сторінці для тестування DOM XSS, надаючи контекст і деталі санітизації.

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

  3. Виявлення джерел забруднення прототипу на стороні клієнта та сканування контрольованих гаджетів, надісланих до ризикованих приймачів.

  4. Ідентифікацію вразливостей DOM clobbering.

Enable It

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

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

Inject a Canary

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

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

Inject an empty Canary

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

Post Messages

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

  1. Логування веб-повідомлень, надісланих через postMessage(), подібно до логування історії HTTP запитів/відповідей Burp Proxy.

  2. Модифікація та повторна відправка веб-повідомлень для ручного тестування DOM XSS, подібно до функції Burp Repeater.

  3. Автоматичне зміна та відправка веб-повідомлень для перевірки DOM XSS.

Message details

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

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

  • data: Тут надсилається корисне навантаження. Якщо ці дані не використовуються, приймач марний.

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

Reply a message

  1. У вигляді Messages натисніть на будь-яке повідомлення, щоб відкрити діалогове вікно деталей повідомлення.

  2. Відредагуйте поле Data за потреби.

  3. Натисніть Send.

Prototype Pollution

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

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

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

let b = {}
b.testproperty

Once you found a source you can scan for a gadget:

  1. Нова вкладка відкривається за допомогою DOM Invader, коли натискається кнопка Scan for gadgets, яка знаходиться поруч з будь-яким виявленим джерелом забруднення прототипу у вигляді DOM. Сканування на наявність підходящих гаджетів починається.

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

DOM clobbering

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

References

Support HackTricks

Last updated