옵션
집 Skill 브라우저 자동화 dns-rebinding-attacks

dns-rebinding-attacks

yaklang/hack-skills yaklang/hack-skills

DNS 리바인딩 공격 가이드. 원본 확인을 위해 DNS 조회를 신뢰하는 애플리케이션, 브라우저 환경에서 내부 서비스와 상호작용하는 애플리케이션을 테스트할 때, 또는 서버 측에서 SSRF가 불가능하지만 대상이 공격자가 제어하는 도메인으로 클라이언트 측 fetch/XHR을 수행하는 경우에 사용합니다.

...모든 것을 확장하십시오
12
업데이트 된 시간 2026년 8월 25일

소개 dns-rebinding-attacks

이 문서는 피해자가 이미 불러온 호스트 이름 뒤에 있는 IP 주소를 변경하여 브라우저의 동일 출처 정책을 우회하는 클라이언트 측 기법에 초점을 맞춘 DNS 리바인딩 공격 가이드입니다. 핵심은 동일 출처 정책이 해결된 IP 주소가 아닌 호스트 이름 문자열을 확인한다는 점입니다: 자신의 도메인에 대한 권한 있는 DNS를 제어하는 공격자는 첫 번째 확인 단계(공격자 IP)에서 악성 자바스크립트를 제공한 다음, 동일한 호스트명을 내부 IP로 재확인할 수 있습니다. 이로 인해 브라우저는 내부 서비스에 대한 요청을 동일 출처로 간주하게 되며, 스크립트는 응답 내용을 읽을 수 있게 됩니다.

이 글은 DNS 리바인딩이 SSRF의 클라이언트 측 대응 기법이라는 점을 명확히 설명하며, 실제 적용 시의 장애물과 해결 방안을 상세히 다룹니다. 브라우저는 낮은 TTL(Chrome, Edge, Firefox의 경우 대략 60초)을 무시하는 자체 DNS 캐시를 유지하기 때문에, 이 문서에서는 캐시 만료 대기, 공격자 IP 차단을 포함한 다중 A 레코드 응답을 통한 강제 폴백, 새로운 조정을 위한 서브도메인 플러딩, 서비스 워커 지연 등 우회 전략을 다룹니다. 공격 변종으로는 고전적인 HTTP 리바인딩, WebSocket 리바인딩, 서버 측 TOCTOU 하이브리드, 그리고 빠른 다중 A 레코드 접근 방식이 포함됩니다.

이 기법은 DNS를 통해 원본 확인을 수행하거나, 공격자가 제어하는 도메인으로 클라이언트 측 fetch/XHR 요청을 보내는 애플리케이션을 테스트할 때, 특히 서버 측 SSRF가 불가능한 경우에 활용하십시오. 주요 표적 목록에는 클라우드 메타데이터(169.254.169.254), Docker 및 Kubernetes API, 내부 관리자 패널, Elasticsearch, Redis, Consul/etcd가 포함되어 있으며, IMDSv2의 토큰 요구 사항으로 인해 no-cors 모드에서는 사용자 정의 헤더를 쉽게 설정할 수 없어 리바인딩이 불가능하다는 점이 언급되어 있습니다. 지원되는 도구로는 Singularity, 설정 없이 바로 사용 가능한 rbndr.us 서비스(16진수 IP 서브도메인 형식), whonow, 최소한의 Python DNS 서버 등이 포함되며, SSRF 및 CORS 설정 오류 활용 기법과 상호 참조됩니다.

자주 묻는 질문

DNS 리바인딩은 SSRF와 어떻게 다른가요?

SSRF는 서버 측 공격인 반면, DNS 리바인딩은 피해자의 브라우저에서 실행되는 클라이언트 측 공격입니다. 이는 동일 출처 정책이 해결된 IP가 아닌 호스트 이름 문자열을 확인한다는 점을 악용합니다.

TTL을 0으로 설정해도 즉시 작동하지 않는 이유는 무엇인가요?

브라우저는 낮은 TTL(Chrome, Edge, Firefox의 경우 약 60초)을 무시하는 자체 DNS 캐시를 유지하므로, 이 스킬은 대기, 폴백이 포함된 여러 A 레코드, 서브도메인 플러딩, 서비스 워커 지연과 같은 우회 방법을 다룹니다.

가치 높은 내부 표적은 무엇일까요?

169.254.169.254의 클라우드 메타데이터, Docker API, Kubernetes API, 내부 관리자 패널, 9200 포트의 Elasticsearch, 6379 포트의 Redis, 그리고 Consul/etcd입니다.

리바인딩을 통해 IMDSv2에서 AWS 자격 증명을 탈취할 수 있나요?

쉽지는 않습니다. IMDSv2는 PUT 요청 시 X-aws-ec2-metadata-token 헤더를 요구하며, 리바인딩은 no-cors 모드에서 초기 토큰 요청 시 사용자 정의 헤더를 쉽게 설정할 수 없습니다. IMDSv1은 더 취약합니다.

어떤 도구를 추천하나요?

Singularity(전체 프레임워크), rbndr.us(설정 불필요, 16진수 IP 쌍 서브도메인 사용), whonow(동적 리바인딩 서버), 그리고 최소한의 맞춤형 Python DNS 서버입니다.

모든 파일

1개 파일

dns-rebinding-attacks 설치

스킬 파일을 다운로드하여 .claude/skills/ 디렉터리에 압축을 풀어주세요.

ZIP 다운로드

저장소를 클론하고 스킬 파일을 프로젝트에 복사하세요.

git clone # Copy SKILL.md to your .claude/skills/ directory

복사 복사
빠른 설정: skill 폴더를 .claude/skills/로 복사하면 Claude가 해당 스킬을 자동으로 감지하여 사용합니다.

관련 스킬

playwright-cli
업데이트 된 시간 2026년 6월 29일
frontend-testing-best-practices
업데이트 된 시간 2026년 7월 7일
Playwright Browser Automation
업데이트 된 시간 2026년 6월 29일
playwright-generate-test
업데이트 된 시간 2026년 6월 29일
OR