Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
domdig — 단일 페이지 애플리케이션용 DOM XSS 스캐너 | Kitploit
도구/GitHubGitHub/fcavallarin/domdig
Vulnerability ScannersWeb Vulnerability ScannersDynamic Analysis (Sandboxing)Web SecurityFuzzing
GitHubfcavallarin/domdig

domdig

단일 페이지 애플리케이션용 DOM XSS 스캐너

저장소 보기
42050710개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

DOMDig

DOMDig는 Chromium 웹 브라우저 내에서 실행되는 DOM XSS 스캐너이며, 단일 페이지 애플리케이션(SPA)을 재귀적으로 스캔할 수 있습니다.
다른 스캐너와 달리, DOMDig는 DOM 수정 및 XHR/fetch/websocket 요청을 추적하여 모든 웹 애플리케이션(gmail 포함)을 크롤링할 수 있으며, 이벤트를 발생시켜 실제 사용자 상호작용을 시뮬레이션할 수 있습니다. 이 과정에서 XSS 페이로드가 입력 필드에 입력되고 실행이 추적되어 주입 지점과 관련 URL 변경 사항을 찾습니다.
htcrawl 기반으로, gmail 계정을 쉽게 크롤링할 수 있을 만큼 강력한 Node 라이브러리입니다.

주요 기능

  • 실제 브라우저(Chromium) 내에서 실행
  • 재귀적 DOM 크롤링 엔진
  • XHR, fetch, JSONP 및 websocket 요청 처리
  • 쿠키, 프록시, 사용자 정의 헤더, 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. Stored DOM XSS
  3. Template Injection
  4. postMessage XSS

DOM XSS

DOM XSS 점검은 다양한 모드로 구성할 수 있으며, 각 모드는 다른 동작을 가능하게 합니다. 기본적으로 모든 모드가 활성화됩니다.
모드는 다음과 같습니다:

  1. domscan
  2. fuzz

domscan

사용자가 JavaScript 코드를 주입할 수 있는 위치(예: 텍스트 상자)를 찾기 위해 DOM을 크롤링합니다. 스캐너가 추측할 수 없는 주입 지점을 발견할 수 있습니다. 예를 들어, 입력 상자의 텍스트를 가져와 검색을 트리거하기 위해 URL의 해시에 JSON 문자열로 넣는 검색 기능이 있을 수 있습니다.

fuzz

페이지 로드 시 코드가 실행되는지 확인하기 위해 URL(쿼리 매개변수 및 해시)을 퍼징합니다. 코드가 실행되지 않으면 HTML 이벤트를 트리거하여 DOM을 크롤링하고 페이로드를 실행하는 요소를 찾습니다.
또한 일반적인 Reflected XSS를 발견할 수도 있습니다.

Stored DOM XSS

DOM XSS 점검 후, DOMDig는 이전에 사용된 페이로드의 실행을 기다리며 동일한 페이지를 크롤링합니다. 하나라도 발견되면 페이지 새로고침에도 유지될 수 있음을 의미합니다.

Template Injection

템플릿 플레이스홀더(예: {var1})가 JavaScript 코드로 평가될 수 있는 위치를 검색합니다.

보고된 취약점

보고된 각 취약점에는 다음 필드가 포함됩니다:

  1. type: 취약점 유형, domxss, stored 또는 templateinj일 수 있음
  2. url: 취약점이 발견된 페이지의 URL
  3. payload: 사용된 페이로드
  4. element: 페이로드가 주입된 HTML 요소의 CSS 선택자 (해당하는 경우)
  5. description: 텍스트 설명
  6. confirmed: URL에 공격 페이로드가 포함된 경우 취약점이 확인된 것으로 간주됩니다. 확인되지 않은 경우 코드가 성공적으로 실행되었지만, 주입된 페이로드와 URL 스키마 간의 관계를 이해하기 위해 수동 분석이 필요할 수 있습니다.

크롤 엔진

DOMDig는 htcrawl을 크롤링 엔진으로 사용합니다.
다이어그램은 재귀적 크롤링 과정을 보여줍니다.
SPA 크롤링 다이어그램.
아래 비디오는 엔진이 gmail을 크롤링하는 모습을 보여줍니다. 크롤링은 몇 시간 동안 지속되었으며 약 3000개의 XHR 요청이 캡처되었습니다.

gmail 크롤링

로그인 시퀀스

로그인 시퀀스(또는 초기 시퀀스)는 스캔이 시작되기 전에 수행할 작업 목록을 포함하는 JSON 객체입니다. 목록의 각 요소는 배열이며, 첫 번째 요소는 수행할 작업 이름이고 나머지 요소는 해당 작업의 "매개변수"입니다. 작업은 다음과 같습니다:

  • navigate <url>
  • write <selector> <text>
  • select <selector> <value>
  • click <selector>
  • clickToNavigate <selector>
  • sleep <seconds>
  • setTarget <selector>

예제

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/master/a" onerror="window.___xssSink({0})">'
]
도구 다운로드