CLI 레퍼런스

Dalfox는 네 개의 서브커맨드와 기본 제공 help로 구성되어 있습니다. 기본값(대상만 전달했을 때)은 scan입니다.

dalfox [SUBCOMMAND] [TARGET] [FLAGS]
서브커맨드 용도
scan 대상에서 XSS를 스캔합니다 (생략 시 기본값)
server REST API 서버를 실행합니다
payload 내장/원격 페이로드를 나열하거나 가져옵니다
mcp Model Context Protocol stdio 서버를 실행합니다
help 서브커맨드별 도움말을 출력합니다

전역 플래그

플래그 설명
--config <FILE> 설정 파일 경로(TOML이나 JSON). 기본 검색 경로를 덮어씁니다.
--debug 디버그 로깅을 활성화합니다.
-h, --help 도움말을 출력합니다.
-V, --version 버전을 출력합니다.

종료 코드:

코드 의미
0 성공, 탐지 결과 없음
1 성공, 탐지 결과 보고됨 (티어 무관 — V만 게이트하려면 --only-poc v와 함께)
2 입력 / 설정 / 런타임 오류

dalfox scan

대상에서 XSS를 스캔합니다. 서브커맨드를 생략해도 동일합니다.

dalfox scan [TARGETS]... [FLAGS]

입력

플래그 약칭 기본값 설명
--input-type -i auto auto, url, file, pipe, raw-http, har
--dedup-urls exact 대상 중복 제거: exact(URL+메서드가 완전히 같은 것만 제거), signature(파라미터 만 다른 URL도 하나로 병합), off(입력의 모든 줄을 그대로 스캔)
--state-file 끝난 대상을 파일에 기록해 두고 같은 스캔을 다시 돌릴 때 건너뜁니다. 중단된 대량 스캔을 처음부터가 아니라 이어서 진행합니다

무엇을 건너뛰고 무엇을 다시 시도하는지는 중단된 스캔 이어하기를 참고하세요.

출력

플래그 약칭 기본값 설명
--format -f plain plain, json, jsonl, markdown, sarif, toml
--output -o 출력을 파일에 씁니다
--include-request false 출력에 HTTP 요청을 포함합니다
--include-response false 출력에 응답 본문을 포함합니다
--include-all false 두 include 플래그의 축약형
--no-color false ANSI 색상을 비활성화합니다
--silence -S false STDOUT에 탐지 결과만 출력합니다
--dry-run false 페이로드를 보내지 않고 탐색 및 계획만 수행합니다
--stream-findings false 스캔 종료 요약 이후가 아니라 각 탐지 결과가 검증되는 즉시 출력합니다 (plain 형식만; --output, --limit, --only-poc 사용 시 자동 비활성화)
--poc-type plain plain, curl, httpie, http-request
--limit 표시되는 전체 결과 수를 제한합니다
--limit-result-type all --limit에 집계되는 유형: all, v, r, a, i
--only-poc 쉼표로 구분된 필터: v(취약), r(반사됨), a(AST), i(정보성)
--baseline 이전 Dalfox JSON/JSONL 리포트와 비교해 그 이후 새로 생긴 건만 보고합니다. 평범한 -f json -o 리포트가 그대로 베이스라인입니다
--baseline-mode filter filter는 알려진 건을 제거하고(카운트와 종료 코드가 신규 기준), annotate는 유지한 채 각각에 new를 표시합니다

지문 규칙과 CI 레시피는 베이스라인을 참고하세요.

대상 형태 지정

플래그 약칭 기본값 설명
--param -p 분석할 파라미터; name:location 형식 지원 (위치: query, body, json, cookie, header)
--data -d 요청 본문
--headers -H 추가 HTTP 헤더 (반복 지정 가능)
--cookies 쿠키 (반복 지정 가능)
--method -X GET HTTP 메서드 재정의 (GET, POST, PUT, DELETE, HEAD, OPTIONS, PATCH, QUERY / RFC 10008)
--user-agent 사용자 지정 User-Agent
--cookie-from-raw raw HTTP 요청 파일에서 쿠키를 불러옵니다

세션

인증 세션이 스캔 도중 만료되어 이후 모든 요청이 로그인 페이지를 받고도 "취약점 0건"으로 정상 종료되는 조용한 실패를 막습니다. 세션 모니터링을 참고하세요.

자격증명이 있으면(--cookies, --cookie-from-raw, 또는 Cookie / Authorization 헤더) 자동으로 켜지고, --session-check 계열 플래그를 직접 지정해도 켜집니다. 그 외에는 꺼져 있으며 추가 요청도 발생하지 않습니다.

플래그 기본값 설명
--session-check 인증된 응답 본문에 계속 매칭되어야 하는 정규식. 지정하면 이 값이 기준이 되며 내장 휴리스틱은 사용하지 않습니다
--session-check-url 세션 재검증 시 스캔 대상 대신 이 URL을 조회합니다 (예: 가벼운 /api/me 엔드포인트)
--on-session-loss abort abort는 해당 대상을 중단하고 같은 호스트의 나머지 대상도 건너뛰며, 탐지 결과가 없으면 2로 종료합니다. continue는 스캔을 계속하고 종료 코드를 바꾸지 않습니다. 어느 쪽이든 대상은 clean이 아니라 incomplete / SESSION_LOST로 보고됩니다

범위

플래그 기본값 설명
--include-url 포함할 URL의 정규식 패턴
--exclude-url 제외할 URL의 정규식 패턴
--ignore-param 건너뛸 파라미터 이름
--out-of-scope 건너뛸 와일드카드 도메인 패턴
--out-of-scope-file 범위 외 도메인을 나열한 파일

탐색

플래그 기본값 설명
--only-discovery false 탐색 후 중지하고 XSS 페이로드를 보내지 않습니다
--skip-discovery false 모든 탐색을 건너뜁니다
--skip-reflection-header false 헤더 기반 반사 검사를 건너뜁니다
--skip-reflection-cookie false 쿠키 기반 반사 검사를 건너뜁니다
--skip-reflection-path false 경로 기반 반사 검사를 건너뜁니다

마이닝

플래그 약칭 기본값 설명
--mining-dict-word -W 파라미터 워드리스트 파일
--remote-wordlists 원격 소스: burp, assetnote
--skip-mining false 모든 마이닝을 건너뜁니다
--skip-mining-dict false 사전 마이닝을 건너뜁니다
--skip-mining-dom false HTML id/name 속성에서 파라미터 이름 수집을 건너뜁니다 (DOM-XSS 탐지가 아님 — --skip-ast-analysis 참고)

네트워크

플래그 약칭 기본값 설명
--timeout 10 요청당 타임아웃(초) (네트워크 한정; 전체 스캔 시간을 제한하지 않음)
--scan-timeout 0 스캔 단계(프리플라이트 이후)의 대상별 실제 경과 시간 하드 상한(초). 초과 시 해당 대상을 중단합니다. 여러 순차 단계가 부분적으로 멈춘 엔드포인트에 대해 각각 요청당 --timeout 비용을 치를 때 유용합니다. 0은 비활성화합니다.
--delay 0 요청 간 지연(ms), 워커별
--rate-limit -r, --rl 0 모든 워커와 대상에 걸쳐 공유되는 전역 아웃바운드 요청 속도를 초당 요청 수로 제한합니다 (0 = 무제한). 하나의 워커만 간격을 두는 --delay와 달리, workers × concurrent targets에서 한꺼번에 나가는 전체 요청량을 제한하므로 공유 IP / 엣지 WAF 임계값에 더 친화적입니다.
--retries 0 HTTP 5xx 및 일시적 전송 오류(타임아웃, 연결 재설정) 시 실패한 요청을 이 횟수만큼 재시도합니다 (0 = 끔). HTTP 429는 이 값과 무관하게 항상 재시도합니다.
--retry-delay 1000 --retries 시도 사이의 지수 백오프 기본 지연(ms) (시도마다 두 배로 증가, 내부적으로 상한 적용). 429에서는 서버의 Retry-After 헤더가 우선합니다.
--proxy 프록시 URL (http://, socks5://)
--insecure true TLS/SSL 인증서 검증을 건너뜁니다 (자체 서명, 만료, 호스트명 불일치 인증서 허용). 스캐너 사용을 위해 기본적으로 켜져 있으며, 인증서 검증을 강제하려면 --insecure=false를 전달합니다.
--follow-redirects -F false 3xx 응답을 따라갑니다
--ignore-return 무시할 HTTP 상태 코드

엔진

플래그 기본값 설명
--workers 50 대상별 동시 워커 수
--max-concurrent-targets 50 전역 동시 대상 수
--max-targets-per-host 100 호스트별 상한

XSS 스캐닝

플래그 약칭 기본값 설명
--encoders -e url,html 쉼표로 구분된 인코더
--remote-payloads portswigger, payloadbox
--custom-blind-xss-payload 사용자 지정 블라인드 페이로드 템플릿 파일
--blind -b 블라인드 XSS 콜백 URL
--blind-oob[=servers] interactsh로 OOB/OAST 블라인드 XSS를 활성화합니다; 선택적으로 쉼표로 구분된 서버 도메인 (기본값: 공용 메시). = 형식이 필요합니다: --blind-oob=oast.fun,oast.me
--blind-oob-secret 자체 호스팅 interactsh 서버용 인증 토큰 (register/poll/deregister 시 Authorization으로 전송)
--blind-oob-wait 30 모든 페이로드 전송 후 OOB 콜백을 계속 폴링할 시간(초) (0 = 스캔 종료 후 추가 대기 없음)
--custom-payload 사용자 지정 페이로드 파일
--only-custom-payload false 사용자 지정 페이로드만 사용합니다
--custom-alert-value 1 alert()/prompt()/confirm() 안에 들어가는 값
--custom-alert-type none none 또는 str
--inject-marker 이 토큰을 페이로드로 치환합니다 (예: FUZZ)
--skip-xss-scanning false 페이로드 주입을 건너뜁니다
--deep-scan false 첫 탐지 결과 이후에도 계속 테스트합니다
--sxss false Stored XSS 모드를 활성화합니다
--sxss-url SXSS용 조회 URL
--sxss-method GET 조회 메서드
--sxss-retries 3 저장된 출력을 가져올 때 조회 URL에 대한 재시도 횟수
--max-payloads-per-param 0 파라미터별로 테스트하는 페이로드 수 제한 (0--deep-scan이 없으면 세트당 3000개의 내장 안전 상한을 적용)
--skip-ast-analysis false AST DOM-XSS([A] 결과를 만드는 source→sink 패스)를 건너뜁니다. --skip-mining-dom이 아니라 이 플래그입니다
--analyze-external-js false 동일 출처의 <script src> 번들을 가져와 AST DOM-XSS 분석을 수행합니다 (프리플라이트, 대상별 1회; 최대 16개 파일, 각 512 KiB; --include-url/--exclude-url을 준수)
--hpp false HTTP 파라미터 오염
--detect-outdated-libs false 오래되었거나 알려진 취약점이 있는 JS 라이브러리도 보고합니다 (정보성, CWE-1104; 추가 요청 0회)

WAF

플래그 기본값 설명
--waf-bypass auto auto, force, off
--skip-waf-probe false 능동 WAF 핑거프린팅을 건너뜁니다
--force-waf --waf-bypass force일 때 사용할 WAF 이름
--waf-evasion false WAF 탐지 시 적응형 회피: 요청 간 무작위 지터 + 차단된 응답이 몰릴 때 점증하는 쿨다운 (기존의 단순한 workers=1/delay=3000 프리셋을 대체). 이 플래그가 없어도 WAF별 페이싱 힌트는 탐지 시 자동으로 적용됩니다. --rate-limit와 함께 쓰면 좋습니다.
--waf-min-confidence 0.3 이 신뢰도 미만의 핑거프린트를 제거합니다 (0.0–1.0). 기본값 0.3Server: Google Frontend(0.15) 같은 약한 매칭을 억제합니다. 약한 신호를 유지하려면 더 낮게 설정하고, 1.0은 완전한 신뢰도를 가진 핑거프린트만 유지합니다.

dalfox server

REST API 서버를 시작합니다.

dalfox server [FLAGS]
플래그 약칭 기본값 설명
--port -p 6664 수신 포트
--host -H 127.0.0.1 바인딩 주소
--api-key 필수 X-API-KEY 헤더 값 (또는 DALFOX_API_KEY)
--log-file 일반 텍스트 로그 파일
--allowed-origins CORS 오리진 (쉼표로 구분, *regex: 지원)
--jsonp false 응답을 JSONP로 감쌉니다
--callback-param-name callback JSONP 콜백 파라미터
--cors-allow-methods GET,POST,OPTIONS,PUT,PATCH,DELETE CORS 메서드
--cors-allow-headers Content-Type,X-API-KEY,Authorization CORS 헤더
--rate-limit 0 전역 아웃바운드 요청 속도를 제한합니다 (초당 요청 수, 0 = 무제한)
--scan-timeout 0 스캔 단계의 대상별 실제 경과 시간 하드 상한(초)
--max-concurrent-scans 100 동시 스캔 수 제한 (0 = 무제한)
--max-body-bytes 1048576 POST /scan/preflight가 허용하는 최대 요청 본문 크기(바이트). 초과 시 413 응답

엔드포인트는 REST API Server를 참조하세요.


dalfox payload

페이로드 컬렉션을 나열하거나 가져옵니다.

dalfox payload <SELECTOR>

선택자:

선택자 출력 내용
event-handlers DOM 이벤트 핸들러 속성 이름
useful-tags 유용한 HTML 태그
uri-scheme javascript:/data: URL 페이로드
special-chars 컨텍스트 프로빙용 특수 문자(및 인코딩된 변형)
functions 필터를 우회하는 변형이 포함된 확인 가능한 싱크(alert, prompt, ...)
awesome-alert 스크린샷용으로 다듬어진 alert PoC(alert(document.domain), ...)
dom-clobbering DOM 클로버링 벡터
mxss Mutation-XSS / 새니타이저 우회 페이로드
blind Blind-XSS 스켈레톤({} = OOB 콜백 URL)
portswigger 원격: PortSwigger XSS 치트시트
payloadbox 원격: PayloadBox XSS 목록

dalfox mcp

MCP stdio 서버를 실행합니다.

dalfox mcp

추가 플래그는 없습니다. 도구 정의는 MCP Server를 참조하세요.


함께 보기

ESC