ffuf 헤더가 필요한 경우

agnusdei·2025년 7월 24일

CTF

목록 보기
51/185

🛑 단순히 URL 앞에 FUZZ.를 넣는 방식은 작동하지 않습니다. (대부분의 경우)

왜냐하면:

❗ 클라이언트가 접속하는 대상은 IP이지만,

웹서버는 Host 헤더로 어떤 가상사이트를 요청했는지를 판단하기 때문입니다.


🔍 비교 예시

① 당신이 말한 방식 (이론적):

ffuf -u http://FUZZ.10.10.178.114/ -w wordlist.txt

이 경우:

  • ffuf는 FUZZ.10.10.178.114DNS 질의를 시도합니다.
  • 그런데 이 서브도메인들이 DNS에 등록되어 있지 않으면 → DNS 해석 실패
  • 결국 서버에 요청 자체를 못 보냄

즉, DNS 이름을 찾을 수 없는 상황에서는 작동하지 않음.


② 헤더에 Host: FUZZ.10.10.178.114를 넣는 방식:

ffuf -u http://10.10.178.114/ -H "Host: FUZZ.10.10.178.114" -w wordlist.txt

이 경우:

  • 요청은 항상 서버 IP로 직접 전송 (10.10.178.114)
  • 대신 Host 헤더에 다양한 값 (admin.10.10.178.114, test.10.10.178.114 등)을 넣어 보냄
  • 웹서버는 이 헤더를 바탕으로 해당 가상 호스트가 존재하는지 판단
  • DNS에 아무것도 없어도 테스트 가능 ✅

✅ 결론 요약

방식작동 여부이유
http://FUZZ.10.10.178.114❌ 실패함OS에서 DNS 해석이 필요하지만, 대부분 그런 서브도메인 없음
http://10.10.178.114 + Host: FUZZ.10.10.178.114✅ 작동함DNS 없이도 요청 가능하고, 웹서버는 Host 헤더 기준으로 판단

📌 정리

서버 IP로 직접 요청을 보내면서 Host 헤더만 바꾸는 방식은, DNS 레코드 없이도 가상 호스트(서브도메인)를 찾을 수 있게 해주는 기법입니다.

그래서 **헤더를 사용하는 게 ‘굳이’가 아니라, 오히려 '필수적인 기법’**인 셈입니다.


ffuf에서 헤더 사용: 언제, 왜 중요한가?

📌 기본 명령어

ffuf -u http://www.smol.thm/FUZZ -w /usr/share/seclists/Discovery/DNS/namelist.txt

🎯 헤더가 중요한 대표 상황

상황설명예시
🔐 인증 필요세션 유지 또는 토큰 인증 필요 시Authorization, Cookie
🕵️‍♀️ User-Agent 필터링웹서버가 브라우저만 허용하거나 봇 차단 시User-Agent: Mozilla/5.0
🎭 WAF 우회웹 방화벽(Web Application Firewall)이 자동화 도구 탐지 시 우회 시도X-Forwarded-For, Referer
🧪 헤더 내부 FUZZURL이 아닌 헤더 안에 FUZZ가 들어갈 때-H "X-Api-Version: FUZZ"
🔁 세션 유지로그인 후 쿠키 기반 탐색 등Cookie: sessionid=...
🌐 가상 호스트 탐지 (Host 헤더)DNS 없이 서브도메인 탐지할 때. Host 헤더 조작이 유일한 방법-H "Host: FUZZ.10.10.178.114"

🧠 핵심 요약: Host 헤더가 왜 중요한가?

http://FUZZ.10.10.178.114와 같은 방식은 DNS 해석이 필요해서 실패 가능성이 높습니다.
반면 ffuf -u http://10.10.178.114 -H "Host: FUZZ.10.10.178.114"
IP로 직접 요청하면서 Host 헤더를 조작해 DNS 없이 가상 호스트를 탐지할 수 있습니다.

✅ CTF나 TryHackMe 실습 환경에서 자주 사용되는 기법입니다.


🛠 헤더 추가 방법 예시

ffuf -u http://target/FUZZ -w wordlist.txt \
  -H "User-Agent: Mozilla/5.0" \
  -H "Cookie: sessionid=abc123" \
  -H "Authorization: Bearer <token>"

헤더 안에서 FUZZ:

ffuf -u http://target/api -H "X-Version: FUZZ" -w versions.txt

가상 호스트 탐지:

ffuf -u http://10.10.178.114 -H "Host: FUZZ.10.10.178.114" -w namelist.txt -fs 178

✅ 결론

ffuf에서 헤더는 선택이 아닌 전략입니다.
특히 가상 호스트 탐지Host 헤더를 Fuzzing하는 유일한 방법이며,
DNS 해석이 안 되는 환경에서 매우 강력한 무기가 됩니다.

헤더는 상황에 맞춰 반드시 적절히 활용해야 하는 실전 핵심 요소입니다.

profile
DevSecOps, Pentest, Cloud(OpenStack), Develop, Data Engineering, AI-Agent

0개의 댓글