Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
domdig — Сканер DOM XSS для одностраничных приложений | Kitploit
Инструменты/GitHubGitHub/fcavallarin/domdig
Сканеры уязвимостейСканеры веб-уязвимостейДинамический анализ (песочница)Веб-безопасностьФаззинг
GitHubfcavallarin/domdig

domdig

Сканер DOM XSS для одностраничных приложений

Репозиторий
4205010 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

DOMDig

DOMDig — это сканер DOM XSS, работающий внутри браузера Chromium, который может рекурсивно сканировать одностраничные приложения (SPA).
В отличие от других сканеров, DOMDig может сканировать любые веб-приложения (включая gmail), отслеживая изменения DOM и запросы XHR/fetch/websocket, и может имитировать реальное взаимодействие пользователя, генерируя события. В ходе этого процесса полезные нагрузки XSS помещаются в поля ввода, а их выполнение отслеживается для обнаружения точек внедрения и связанных изменений URL.
Он основан на htcrawl, библиотеке Node, достаточно мощной, чтобы легко сканировать аккаунт gmail.

КЛЮЧЕВЫЕ ОСОБЕННОСТИ

  • Работает внутри реального браузера (Chromium)
  • Рекурсивный движок сканирования DOM
  • Обрабатывает запросы XHR, fetch, JSONP и websockets
  • Поддерживает cookies, proxy, пользовательские заголовки, http-аутентификацию и другое
  • Сценарии последовательностей входа
  • Запись последовательностей
  • Фаззер postMessage

НАЧАЛО РАБОТЫ

Установка

root@kitploit:~
git clone https://github.com/fcavallarin/domdig.git
cd domdig && npm i && cd ..
node domdig/domdig.js

Пример

root@kitploit:~
node domdig.js -c 'foo=bar' -p http:127.0.0.1:8080 https://fcvl.net/htcap/scanme/domxss.php

ВЫПОЛНЯЕМЫЕ ПРОВЕРКИ

DOMDig может выполнять три различные проверки:

  1. DOM XSS
  2. Хранимое DOM XSS
  3. Внедрение шаблонов
  4. XSS через postMessage

DOM XSS

Проверку DOM XSS можно настроить с помощью различных режимов, обеспечивающих разное поведение. По умолчанию включены все.
Режимы:

  1. domscan
  2. fuzz

domscan

Он сканирует DOM в поисках мест, где пользователь может внедрить JavaScript-код, например, текстовое поле. Он может обнаружить точки внедрения, которые не может угадать сканер. Примером может служить функция поиска, которая берет текст из поля ввода и для запуска поиска помещает его в хэш URL в виде JSON-строки.

fuzz

Он фаззит URL (параметры запроса и хэш), чтобы проверить, выполняется ли наш код при загрузке страницы. Если код не выполняется, он сканирует DOM, инициируя HTML-события, в надежде найти что-то, что выполнит нашу полезную нагрузку.
Он также может обнаружить классический отражённый XSS.

Хранимое DOM XSS

После выполнения проверки DOM XSS DOMDig повторно сканирует ту же страницу, ожидая выполнения ранее использованных полезных нагрузок. Если какая-либо из них найдена, это означает, что она может сохраняться после перезагрузки страницы.

Внедрение шаблонов

Ищет места, где плейсхолдеры шаблонов (например, {var1}) могут быть выполнены как JavaScript-код.

Сообщаемые уязвимости

Каждая сообщаемая уязвимость содержит следующие поля:

  1. type: тип уязвимости, может быть domxss, stored или templateinj
  2. url: URL страницы, на которой была обнаружена уязвимость
  3. payload: использованная полезная нагрузка
  4. element: CSS-селектор HTML-элемента (если есть), в который была внедрена полезная нагрузка
  5. description: текстовое описание
  6. confirmed: уязвимость считается подтверждённой, если URL содержит атакующую полезную нагрузку. Если не подтверждена, это означает, что код был успешно выполнен, но для понимания связи между внедрённой полезной нагрузкой и схемой URL может потребоваться ручной анализ.

Движок сканирования

DOMDig использует htcrawl в качестве движка сканирования.
Диаграмма показывает рекурсивный процесс сканирования.
SPA Crawling Diagram.
Видео ниже показывает работу движка по сканированию gmail. Сканирование длилось много часов и было захвачено около 3000 XHR-запросов.

crawling gmail

Последовательность входа

Последовательность входа (или начальная последовательность) — это объект JSON, содержащий список действий, которые необходимо выполнить до начала сканирования. Каждый элемент списка — это массив, где первый элемент — имя выполняемого действия, а остальные элементы — «параметры» для этих действий. Действия:

  • navigate
  • write
  • select
  • click
  • clickToNavigate
  • sleep
  • setTarget

Пример

root@kitploit:~
[
   ["navigate", "https://target.local/login-page"],
   ["write", "#username", "demo"],
   ["write", "#password", "demo"],
   ["sleep", 2],
   ["clickToNavigate", "#btn-login"]
]

Файл полезных нагрузок

Полезные нагрузки могут быть загружены из JSON-файла (опция -P) в виде массива строк. Для создания пользовательских полезных нагрузок в качестве выполняемой функции необходимо использовать строку window.___xssSink({0}) (вместо классического alert(1))

Пример

root@kitploit:~
[
   ';window.___xssSink({0});',
   '<img src="https://raw.githubusercontent.com/fcavallarin/domdig/HEAD/a" onerror="window.___xssSink({0})">'
]
Скачать инструмент