Dalfox 2.12 Released ⚡︎

Dalfox v2.12.0이 릴리즈되었습니다. 이전 버전인 2.11 이후 약 3개월만의 릴리즈이고, 다양한 형태의 기능 개선이 있었습니다. 오늘은 어떤 기능들이 새로 추가되었는지 간단하게 이야기해봅니다.

Added advanced XSS scanning features

XSS 편의성과 결과 향상을 위해 4개의 flag가 추가됬습니다. 소개에 해당 부분을 기여해주신 @ibrahmsql에게 감사의 인사를 드립니다.

  • --detailed-analysis: Performs deeper parameter analysis to uncover more XSS vectors
  • --fast-scan: Enables faster scanning, useful in CI/CD pipelines
  • --magic-char-test: Generates magic character payloads for manual analysis
  • --context-aware: Selects payloads intelligently based on the response context

Improve help message (grouping)

--help 메시지의 가독성이 향상되었습니다. 기능별로 옵션을 그룹화하여 훨씬 깔끔하고 보기 편하게 바뀌었습니다.

help

--custom-blind-xss-payload flag

기존에는 BSS(Blind XSS) 페이로드로 미리 정의된 값들만 사용할 수 있었지만, 이제 --custom-blind-xss-payload 플래그를 통해 사용자가 원하는 페이로드를 직접 지정할 수 있습니다. private C2나 특정 포맷을 사용해야 하는 환경에서 유용하게 사용할 수 있습니다.

dalfox url http://test.com/?q=1 --custom-blind-xss-payload 'payloads.txt'

New payload patterns

codebase 기반 XSS와 같이 최근에 공유된 페이로드가 추가됬습니다.

<object data=# codebase=javascript:alert(document.domain)//>
<embed src=# codebase=javascript:alert(document.domain)//>

Add markdown report format

--report-format 옵션에 markdown (또는 md) 포맷이 추가되었습니다. 이제 스캔 결과를 깔끔한 마크다운 형식의 보고서로 저장하고, 다른 문서에 쉽게 통합할 수 있습니다.

dalfox url "https://xss-game.appspot.com/level1/frame?query=AB" \
    --report \
    --report-format md

특히 이 기능은 Caido 연결 시 유용하게 사용할 수 있습니다. Dalfox Caido Integration 문서를 참고해주세요.

Server mode

Server 모드의 기능 개선 사항입니다.

API Key based authentication

Server 모드에 --api-key 플래그가 추가되었습니다. 이 플래그로 API Key를 설정하면, X-API-Key 헤더에 해당 키가 포함된 요청만 허용하여 스캐너를 더 안전하게 운영할 수 있습니다.

# Start Server
dalfox server --api-key="SECRET" &

# Scan
curl --request POST \
  --url http://localhost:6664/scan \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: SECRET' \
  --data '{
    "options": {
        "use-headless": true,
        "use-deepdxss": true,
        "output-all": true,
        "output-request": false,
        "output-response": false,
        "follow-redirects": true
    },
    "url": "http://testphp.vulnweb.com/listproducts.php?artist=123"
}'

CORS, JSONP support

Server 모드에서 Cross-Origin Resource Sharing(CORS)과 JSONP를 지원합니다. --allow-origins, --jsonp 플래그를 통해 다른 도메인의 웹 애플리케이션에서 Dalfox API를 더 유연하게 연동할 수 있습니다.

dalfox server \
    --allow-origins "https://www.hahwul.com" \
    --jsonp

Pipe mode

Pipe 모드의 기능 개선 사항입니다.

Add raw HTTP request support to pipe mode

이제 Pipe 모드에서도 File 모드와 마찬가지로 Raw HTTP Request를 직접 입력으로 사용할 수 있습니다. Burp, Caido, ZAP과 같은 프록시 툴에서 복사한 요청을 바로 파이핑하여 테스트할 수 있어 연동성이 크게 향상되었습니다.

echo "POST https://www.hahwul.com/?q=dalfox HTTP/1.1
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:56.0) Gecko/20100101 Firefox/56.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ko-KR,ko;q=0.8,en-US;q=0.5,en;q=0.3
Connection: keep-alive
Cookie: _ga=GA1.2.1102548207.1555467144; _gid=GA1.2.1362788908.1563875038
Upgrade-Insecure-Requests: 1
Host: www.hahwul.com

asdf=asdf" | ./dalfox pipe --rawdata

Bug Fixes & Dependency Updates

  • chromedp의 upstream 버그가 해결된 버전으로 업데이트되었습니다. (일부 오류를 일으키기 때문에 가급적 업데이트 해주세요)
  • 기타 자잘한 버그들이 수정되고, 의존성 라이브러리들이 업데이트되었습니다.

Documentation

업데이트 내용에 따라 문서를 개선했고, Nixpkgs 내 dalfox를 관리해주신 @fabaff가 문서 업데이트도 기여해주셨습니다. 또 한번 감사의 인사를 드리고 싶네요.

Next Plan

향후 Dalfox는 다음과 같은 방향으로 개선될 예정입니다.

  • Docs: 문서를 전반적으로 개편하여 가독성과 접근성을 높일 계획입니다.
  • Features from Issues: GitHub 이슈로 제보된 다양한 기능 제안들을 검토하고 개발에 반영할 예정입니다.
  • New Mode: AI를 활용하거나, 사용자와 상호작용하며 스캔을 진행하는 Interactive 모드와 같은 새로운 컨셉의 스캔 모드를 구상하고 있습니다.

이번 릴리즈에 기여해주신 모든 분들께 감사드립니다. 이번 여름은 유난히 더우니 날씨가 살짝 좋아지면 다음 작업을 진행해볼게요!