
ffuf 결과 파일에서 관련 없는 항목을 제거하는 데 도움이 되는 Golang 도구입니다.
안타깝게도, ffuf는 "-ac" 플래그에도 불구하고 관련 없는 항목을 많이 생성하는 경향이 있습니다. 그래서 저는 이러한 항목을 걸러내는 후처리 도구를 만들었습니다. 또한 "-ac"를 사용할 때 관련 항목이 많이 제거되는 것을 보았습니다. 특히 ffuf가 json 또는 xml 파일을 만날 때 "-ac"가 해당 항목을 완전히 삭제할 수도 있습니다. 이 도구는 ffuf가 완료된 후 실행해야 합니다. 또한 초기 ffuf 명령은 다음 플래그와 함께 실행해야 합니다:
-o /folder/to/results.json
-od /folder/to/bodies
-of json (default)
이렇게 하면 ffuf가 json 형식의 요약 파일과 응답 본문을 디스크에 작성합니다. "-od"를 추가하는 것은 필수는 아니지만 권장합니다.
__"-ac" 플래그를 사용하지 않는 것__을 강력히 권장합니다. 특히 멋진 것을 놓치고 싶지 않고 이 후처리 도구를 사용하려는 경우에 그렇습니다.
Usage of ./ffufPostprocessing:
-result-file string
Path to the original ffuf result file (in json format)
-bodies-folder string
Path to the ffuf bodies folder (optional, if set results will be better)
-new-result-file string
Path to the new ffuf result file (optional)
-delete-bodies
Delete unnecessary body files after filtering (optional)
-overwrite-result-file
Overwrite original result file (optional)
-verbose
Verbose mode (Shows currently filtered results) (optional)
먼저 평소처럼 ffuf를 실행합니다. 저는 매우 간단한 최소한의 명령을 사용했습니다:
./ffuf -u yourtarget.com/FUZZ -w /path/to/wordlist -o /tmp/ffuf/results.json -od /tmp/ffuf/bodies/ -of json
실행이 끝나면 결과 파일과 모든 본문이 지정한 폴더에 있어야 합니다. 이제 데이터를 파싱하고 관련 없는 항목을 걸러낼 차례입니다:
./ffufPostprocessing -result-file /tmp/ffuf/results.json -bodies-folder /tmp/ffuf/bodies/ -delete-bodies -overwrite-result-file
특히 -od가 설정된 경우, 즉 요청된 각 url에 대한 모든 http 헤더와 본문을 보유한 경우, 이 도구는 먼저 모든 본문을 분석하고 초기 결과 json 파일을 다음 데이터 포인트로 보강합니다:
그런 다음 전체 새 결과 파일을 스캔하고 알려진 메타데이터 유형을 기반으로 고유한 항목만 유지합니다. 해당 값 중 하나가 항상 다른 경우(예: 페이지 제목이 매우 다양할 수 있음) 이 메타데이터 유형은 고유성 검사에서 건너뜁니다.
일반적으로 이 도구는 고유하지 않은 항목을 소량 항상 유지합니다. 예를 들어 결과 json 파일에 300개의 http 상태 403(단어, 길이 등이 동일)과 2개의 고유한 http 상태 200 응답이 포함된 경우 300개의 http 상태 403 항목을 모두 삭제하지 않습니다. 데이터 세트에 그중 X개를 유지합니다.
ffufPostprocessing은 golang 1.19이 필요합니다.
cd ffufPostprocessing
go build -o dist/ffufPostprocessing main.go
상관없습니다. 이 도구로 원하는 대로 하세요.