CLI 레퍼런스
Dalfox는 네 개의 서브커맨드로 구성되어 있습니다. 기본값(대상만 전달했을 때)은 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 |
성공, 탐지 결과 보고됨 |
2 |
입력 / 설정 / 런타임 오류 |
dalfox scan
대상에서 XSS를 스캔합니다. 서브커맨드를 생략해도 동일합니다.
dalfox scan [TARGETS]... [FLAGS]
입력
| 플래그 |
약칭 |
기본값 |
설명 |
--input-type |
-i |
auto |
auto, url, file, pipe, raw-http, har |
출력
| 플래그 |
약칭 |
기본값 |
설명 |
--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 |
--only-poc |
— |
— |
쉼표로 구분된 필터: v, r, a |
대상 형태 지정
| 플래그 |
약칭 |
기본값 |
설명 |
--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 요청 파일에서 쿠키를 불러옵니다 |
범위
| 플래그 |
기본값 |
설명 |
--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 |
DOM 마이닝을 건너뜁니다 |
네트워크
| 플래그 |
약칭 |
기본값 |
설명 |
--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 = 제한 없음) |
--skip-ast-analysis |
— |
false |
AST DOM-XSS를 건너뜁니다 |
--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.3은 Server: 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 |
-r, --rl |
0 |
전역 아웃바운드 요청 속도를 제한합니다 (초당 요청 수, 0 = 무제한) |
--scan-timeout |
— |
0 |
스캔 단계에 대한 대상별 하드 실제 시간 상한(초) |
--max-concurrent-scans |
— |
0 |
동시 스캔 수 제한 (0 = 무제한) |
--max-body-bytes |
— |
0 |
분석용 응답 본문 바이트 제한 (0 = 무제한) |
엔드포인트는 REST API Server를 참조하세요.
dalfox payload
페이로드 컬렉션을 나열하거나 가져옵니다.
dalfox payload <SELECTOR>
선택자:
| 선택자 |
출력 내용 |
event-handlers |
DOM 이벤트 핸들러 속성 이름 |
useful-tags |
유용한 HTML 태그 |
uri-scheme |
javascript:/data: URL 페이로드 |
portswigger |
원격: PortSwigger XSS 치트시트 |
payloadbox |
원격: PayloadBox XSS 목록 |
dalfox mcp
MCP stdio 서버를 실행합니다.
dalfox mcp
추가 플래그는 없습니다. 도구 정의는 MCP Server를 참조하세요.
함께 보기