
"Can I take over XYZ?" — 방치된 DNS 레코드로 (하위)도메인을 탈취하는 방법과 그 서비스 목록.

이 문서의 저자는 정확성에 대해 어떠한 책임도 지지 않습니다. 이 프로젝트는 단지 보안 연구자가 취약점 여부를 판단하는 데 도움을 주기 위한 안내일 뿐이며, 정확성을 보장하지 않습니다. 이 프로젝트는 공개 기여에 크게 의존하므로, 무언가가 취약하다는 증명은 전적으로 보안 연구자와 버그 바운티 프로그램의 재량에 달려 있습니다.
또한, 이 프로젝트는 다양한 서비스에서 구현된 보안 조치를 우회하는 방법을 식별하거나 공개하는 것을 목표로 하지 않습니다. 대신, 그러한 우회 방법은 해당 서비스에 직접 보고되어 적절한 조치가 취해져야 합니다.
마지막으로, 일부 버그 바운티 프로그램은 손상 증명 없이도 방치된 DNS 레코드 보고를 수용할 수 있다는 점에 유의해야 합니다.
서브도메인 탈취 취약점은 서브도메인(subdomain.example.com)이 제거되거나 삭제된 서비스(예: GitHub Pages, Heroku 등)를 가리키고 있을 때 발생합니다. 이로 인해 공격자는 사용 중이던 서비스에 페이지를 설정하고 해당 페이지를 그 서브도메인으로 지정할 수 있습니다. 예를 들어, subdomain.example.com이 GitHub 페이지를 가리키고 있었고 사용자가 GitHub 페이지를 삭제하기로 결정했다면, 공격자는 이제 GitHub 페이지를 만들고, subdomain.example.com을 포함하는 CNAME 파일을 추가한 후 subdomain.example.com을 소유권 주장할 수 있습니다.
서브도메인 탈취에 대한 자세한 정보는 다음에서 확인할 수 있습니다:
개인적인 경험에 따르면, 서브도메인을 신중하게 소유권 주장하고 숨겨진 페이지에 무해한 파일을 제공하는 것이 일반적으로 보안 취약점을 증명하기에 충분합니다. 인덱스 페이지에 콘텐츠를 제공하지 마십시오. 좋은 개념 증명은 무작위 경로를 통해 제공되는 HTML 주석으로 구성될 수 있습니다:``` $ cat aelfjj1or81uegj9ea8z31zro.html
이 프로젝트의 사용 방법은 타겟팅하는 버그 바운티 프로그램에 따라 다를 수 있습니다. 확실하지 않은 경우 버그 바운티 프로그램의 보안 정책을 참조하거나 프로그램 담당 팀에 문의하시기 바랍니다.
## 이 프로젝트 사용 방법
타겟팅하는 서비스의 이름을 이슈 탭에서 검색하는 것을 권장합니다. 그러면 진행 중인 논의와 원하는 하위 도메인을 클레임하는 방법에 대한 더 자세한 단계를 확인할 수 있습니다.
## 기여하는 방법
새로운 서비스를 여기에서 제출할 수 있습니다: https://github.com/EdOverflow/can-i-take-over-xyz/issues/new?template=new-entry.md.
확인 가능한 서비스 목록(단, 이 목록에서 중복을 먼저 확인)은 여기에서 찾을 수 있습니다: https://github.com/EdOverflow/can-i-take-over-xyz/issues/26.
# 모든 항목
참고: `fingerprints.json`은 이 표의 내용을 기반으로 자동으로 업데이트됩니다.
열 헤더 정의:
- `Engine`: 서비스 이름
- `Status`: 서비스가 취약한지 여부
- `Verified by CI/CD`: 자동 핑거프린트 확인이 현재 통과 중인지 여부
- `Domains`: 쉼표로 구분된 도메인(핑거프린트 자동 검증에 사용)
- `Fingerprint`: 취약한 페이지를 나타내는 정규식(또는 존재하지 않는 DNS 레코드를 나타내는 `NXDOMAIN`)
- `Discussion`: 이 저장소의 이슈에 대한 링크(토론용)
- `Documentation`: 공식 문서에 대한 링크