Blog


버그바운티 클럽이 전해드리는 이야기를 확인하세요.



[해킹 도구를 소개합니다 #1] Dalfox: 매개변수 분석 및 XSS 스캐너

웹 애플리케이션 취약점 진단시 빠뜨릴 수 없는 취약점 중 하나는 XSS입니다. XSS는 매우 고전적인 취약점이지만 여전히 가장 빈번하게 발견되는 취약점이기도 합니다. "해킹 도구를 소개합니다"에서 첫번째로 소개드릴 도구는 XSS 식별을 위해 제작된 하훌(@Hahwul)님의 Dalfox입니다. 트위터에서 활발히 활동하는 버그바운티 헌터 중 우리나라(대한민국) 사람은 찾아보기 힘듭니다만 하훌님은 뛰어난 웹 해킹 실력을 보유한 우리나라의 버그바운티 헌터입니다. Dalfox 외에도 다른 도구를 제작하거나 토이 프로젝트를 통해 버그바운티 분야에 공헌하기도 하며 이미 버그바운티 분야에서 꽤나 유명인사가 되어 계시죠.  그의 설명에 따르면 Dalfox는 golang/DOM 파서를 기반으로 한 매개변수 분석 및 XSS 취약점을 스캔하기 위한 커맨드라인 도구입니다. Dalfox라는 이름에서 Dal은 말그대로 한국어로 '달'을 뜻하며, fox는 Find Of XSS의 머리글자입니다. Dalfox의 로고를 한번 보시면 도구의 이름을 감각적으로 잘 표현했다는 것을 볼 수 있습니다. (웹브라우저인 파이어폭스와 조금 비슷하다고 느끼는 것은 아마도 기분 탓일겁니다. :D )설치Ubuntu를 사용하는 경우에는 아래와 같이 단 한줄의 명령만 실행하면 설치할 수 있습니다.sudo snap install dalfox정상적으로 설치되면 아래와 같은 메세지를 볼 수 있습니다.설치가 제대로 되었는지 확인하기 위해 dalfox 명령을 실행해봅니다.dalfoxUbuntu 외에도 Mac OS에서도 설치하여 사용하실 수 있으며, 소스를 통한 설치도 가능합니다.사용법dalfox의 기본 사용법은 아래의 형식을 따릅니다.dalfox [mode] [flags] [data]dalfox는 상황에 따른 다양한 모드를 지원합니다. 현재 지원되는 모드는 아래 5개의 모드가 있습니다.URL 모드(싱글 타겟 모드)파이프라인 모드파일 모드(멀티 타겟 모드)SXSS 모드서버 모드(REST API)URL 모드 (싱글 타겟 모드)URL 모드는 단일 URL에 대한 분석 및 검사를 수행합니다.dalfox url http://testphp.vulnweb.com/listproducts.php아래의 실행 결과를 보시면 지정된 URL을 분석하여 XSS를 검출했음(검사 결과 마지막 부분)을 확인할 수 있습니다. 흥미로운 점은 dalfox에 내장된 데이터베이스 에러 메시지가 노출되는지 검사해주는 점입니다. 에러 메시지가 노출되는 엔드포인트를 통해 SQL 인젝션 공격 또한 시도해볼 수 있겠네요. 파이프라인 모드파이프라인 모드는 시스템 I/O로 입력을 받아 다수의 URL을 대상으로 검사를 수행할 수 있습니다.파이프라인 모드를 사용하면 다른 도구의 출력을 dalfox의 입력으로 사용하는 것이 가능합니다.echo 'urls.txt' | dalfox pipedwisiswant0의 깃허브에 정리해둔 유용한 버그바운티 Oneliner에도 dalfox를 파이프라인 모드로 사용한 사례가 있습니다. (아래 명령어의 뒷 부분)gospider -S targets_urls.txt -c 10 -d 5 --blacklist ".(jpg|jpeg|gif|css|tif|tiff|png|ttf|woff|woff2|ico|pdf|svg|txt)" --other-source | grep -e "code-200" | awk '{print $5}'| grep "=" | qsreplace -a | dalfox pipe | tee result.txt파일 모드 (멀티 타겟 모드)다수의 URL을 검사할 수 있다는 점에서 파이프라인 모드와 유사하지만 검사할 URL 목록을 가진 파일명을 입력으로 받습니다. dalfox file urls.txtBurp Suite이나 ZAProxy의 원시 요청 파일을 입력으로 사용해 검사를 수행할 수 있는 기능을 제공합니다.dalfox file req.raw --rawdataSXSS 모드SXSS 모드는 저장된 XSS(Stored XSS)를 스캔하기 위한 모드입니다. 기본 사용법은 아래와 같습니다. dalfox sxss {TARGET-URL} -d {POST-DATA} --trigger {VERIFY_URL}{TARGET_URL}에는 XSS 페이로드를 주입할 수 있는 URL을 입력하고 -d 옵션으로 POST 데이터를 지정할 수 있습니다. 그리고 --trigger 옵션을 사용해 주입된 XSS 페이로드가 실행되는지 검사할 URL을 지정하여 저장된 XSS에 취약한지 테스트할 수 있습니다. dalfox sxss http://example.com/update_profile -d name=foo --trigger "http://example.com/view_profile"서버 모드dalfox가 서버로서 동작하며 웹 요청을 사용해 스캔을 수행할 수 있는 모드입니다. 현재 Swagger를 지원합니다.dalfox server --host 0.0.0.0 --port 8090소개를 마치며지금까지 Dalfox의 매우 기초적인 사용법에 대해서만 간단히 소개해드렸습니다. Dalfox는 타겟 URL을 분석하여 XSS 및 SQL 인젝션, SSTI, Open Redirect 등의 기본적인 웹 취약점을 식별하기 위해 매우 유용하게 사용할 수 있는 도구입니다. 여기서 소개해드린 사용법 외에도 여러분의 XSS 사냥을 위한 다양한 옵션들이 제공됩니다. 하훌님의 Dalfox 웹사이트를 방문하여 더 자세한 내용을 확인해보세요.제가 아는 한 Dalfox의 제작자 하훌님은 이 도구에 남다른 애착을 갖고 기능을 개선하는 등 활발히 활동하고 있습니다. 훌륭하고 멋진 도구를 제작하여 무료로 공개해 준 그의 배려와 노력에 감사드리며, XSS를 찾기 위해 고생하고 계실 다른 헌터분들께dalfox가 조금이나마 도움이 되기를 바랍니다.
 2021-05-24 11:20 KST      2404