에이전트 스킬

Dalfox에는 스킬을 인식하는 에이전트에게 Dalfox를 올바르게 구동하는 법을 알려주는 SKILL.md가 들어 있습니다: 인가 게이트 우선, CLI보다 MCP 우선, 무거운 스캔 전 프리플라이트, V > A > R 탐지 결과 우선순위. 에이전트가 이 파일을 읽게 하면 모델이 플래그를 추측하지 않습니다.

이 파일은 저장소의 skills/dalfox/SKILL.md에 있으므로, Dalfox를 클론했다면 이미 로컬에 있습니다. 단일 파일이 아니라 묶음입니다. SKILL.md에는 워크플로가 들어 있고, 찾아볼 자료는 references/ 디렉터리로 에이전트를 안내합니다: cli.md(플래그와 안전한 조합), mcp.md(여섯 도구의 스키마와 검증 규칙), results.md(탐지 결과 축, 출력 형식, 오류·종료 코드), config.md, server-and-payload.md, advanced.md(WAF, 마이닝, raw-http/HAR 레시피), 그리고 전체 지도인 INDEX.md입니다.

npx skills로 설치

가장 쉬운 방법은 오픈 agent-skills CLI입니다:

# Install to the current project (committed, shared with the team)
npx skills add hahwul/dalfox

# Or install globally (~/<agent>/skills/, available everywhere)
npx skills add hahwul/dalfox -g

이 CLI는 사용 중인 에이전트(Claude Code, Cursor, Codex, OpenCode, 그리고 그 밖의 수십 개 에이전트)를 자동으로 감지해 각각에 스킬을 연결합니다. 하나만 원한다면 특정 에이전트를 지정하세요:

# Only Claude Code
npx skills add hahwul/dalfox -a claude-code

# Non-interactive (CI-friendly)
npx skills add hahwul/dalfox -g -a claude-code -y

나중에 업데이트하려면:

npx skills update dalfox

제거하려면:

npx skills remove dalfox

수동으로 설치

npx를 실행하고 싶지 않다면, 스킬을 에이전트가 기대하는 위치에 직접 내려받으세요. Claude Code라면 ~/.claude/skills/dalfox/입니다. 스킬이 에이전트를 references/ 파일로 보내므로 SKILL.md와 함께 받아 두세요:

BASE=https://raw.githubusercontent.com/hahwul/dalfox/main/skills/dalfox
mkdir -p ~/.claude/skills/dalfox/references
curl -o ~/.claude/skills/dalfox/SKILL.md "$BASE/SKILL.md"
for f in INDEX cli mcp results config server-and-payload advanced; do
  curl -o ~/.claude/skills/dalfox/references/$f.md "$BASE/references/$f.md"
done

클론한 저장소가 있다면 cp -r skills/dalfox ~/.claude/skills/로도 같은 결과를 얻습니다.

다른 클라이언트는 각자의 스킬 디렉터리에서 읽어 들입니다. 정확한 경로는 해당 에이전트 문서를 보세요.

스킬이 다루는 내용

  • 트리거 조건: 사용자가 URL의 XSS를 스캔하거나, 반사되는 파라미터를 열거하거나, "dalfox"를 명시적으로 언급할 때 발동됩니다. XSS가 아닌 취약점은 건너뜁니다.
  • 인가 게이트: 대상이 누가 봐도 테스트 랩인 경우가 아니라면, 스킬은 사용자가 대상에 페이로드를 보낼 권한이 있음을 확인하기 전까지 스캔을 거부합니다.
  • 모드 감지: MCP 도구가 있으면 그쪽을 먼저 쓰고, 없으면 dalfox CLI로 넘어가며, 둘 다 없으면 설치 방법을 사용자에게 안내합니다.
  • MCP 플레이북: preflight_dalfox → scan_with_dalfox → get_results_dalfox 폴링(suggested_poll_interval_ms 준수) → settled: true가 된 뒤에만 delete_scan_dalfox. 취소 직후 워커가 아직 정리 중이면 삭제를 다시 시도해야 합니다. 검증된 입력 범위(timeout 1–299초, delay 0–9999ms)를 포함하여 에이전트가 Dalfox가 거부할 값을 보내지 않게 합니다.
  • CLI 시나리오: POST 본문, 인증된 세션, Burp 경유 프록시, 블라인드 XSS(직접 준비한 콜백 URL, 또는 --blind-oob로 Dalfox가 관리하는 OAST 세션), 저장형 XSS, 대상 목록, 캡처한 요청(raw-http / HAR), 빠른 스모크 테스트, 최대 커버리지 실행.
  • 결과 해석: 서로 독립된 세 축 — type(주장: V 악용 가능 판단 > A AST 탐지 > R 반사만 확인 > I 정보성), detection_method(탐지 방식), severity(영향도, 현재는 티어에서 파생) — 과 그 주장의 근거 등급인 confidence / confidence_reason. 에이전트가 가장 강한 주장부터 앞세우고, V를 브라우저 실행 관측으로는 절대 서술하지 않습니다. 탐지 모델 참고.
  • 실패 모드: reachable: false, CONNECTION_FAILED나 SESSION_LOST 오류, 실제로는 제대로 돌지 않은 스캔의 빈 보고서가 왜 깨끗한 결과가 아닌지, 그리고 invalid_params 오류가 에이전트에게 무엇을 고치라는 뜻인지.

사전 요구 사항

이 스킬은 dalfox 바이너리나 MCP 서버가 에이전트 환경에서 도달 가능하다고 가정합니다. Dalfox를 먼저 설치한 뒤(설치 가이드) 스킬을 설치하세요.

작성 팁

스킬 파일은 저장소의 skills/dalfox/SKILL.md에 있습니다. 기여를 환영합니다. 다만 이미 CLI 참조에 있는 내용을 다시 옮기기보다는 에이전트가 Dalfox를 어떻게 구동해야 하는지에 초점을 맞춰 주세요.

ESC