본문 바로가기

버그바운티 리포트 분석

[ 1-Day ] Subdomain takeover on svcgatewayus.starbucks.com

본 포스팅은 학습 목적으로 작성되었으며, hackerone report를 기반으로 작성되었습니다. 

 

분석 레포트

https://hackerone.com/reports/325336

 

Starbucks disclosed on HackerOne: Subdomain takeover on...

 

hackerone.com

 

 

스타벅스의 하위 도메인(subdomain) 중 하나에서 Subdomain Takeover 취약점이 발생할 수 있다. starbucks.com 하위 도메인 중 하나가 청구되지 않은 CNAME 레코드가 있는 Azure를 가리키고 있으며, 현재 누구나 starbucks.com 하위 도메인을 소유할 수 있다. 

 

svcgatewayus.starbucks.com의  CNAME은 1fd05821-7501-40de-9e44-17235e7ab48b.cloudapp.net의 CNAME을 가진 s00197tmp0crdfulprod0.trafficmanager.net 에 있다. 그러나 1fd05821-7501-40de-9e44-17235e7ab48b.cloudapp.net은 더 이상 Azure 클라우드에 등록되어 있지 않으므로 누구나 등록할 수 있다. Azure 포털에 클라우드 앱을 등록한 후에는 등록한 사람이 svcgatewayus.starbucks.com의 콘텐츠를 완전히 제어할 수 있다.

 

PoC

http://svcgatewayus.starbucks.com

완화

 

starbucks.com DNS 영역에서 CNAME 레코드를 완전히 제거한다. 
릴리스한 후 Azure Portal에서 다시 청구한다. 

 

영향

 

Subdomain Takeover 취약점은 악성코드 유포, 피싱/스피어 피싱, XSS, 인증 우회에 악용될 수 있다. 

 

 


 

위 보고서를 작성한 제보자의 블로그에 추가적인 글이 올라와 있어 해당 내용을 추가 작성하였습니다. 

 

출처

https://0xpatrik.com/subdomain-takeover-starbucks/

 

Subdomain Takeover: Starbucks points to Azure

This post is the write-up about bug bounty report [https://hackerone.com/reports/325336] that I reported back in March 2018 to Starbucks. The report is now disclosed, and I was awarded $2,000 bounty. Although I have written about subdomain takeover in mult

0xpatrik.com

 

( 위  1-day 보고서와 일치하는 부분은 생략하였습니다 )

 

Azure는 다양한 서비스를 제공한다. 그 중 2가지 서비스는 아래와 같다. 

 

Azure Websites — .azurewebsites.net
Cloud Apps — .cloudapp.net

 

CloudFront 및 기타 유사한 서비스와 비교할 때, 가장 중요한 차이점은 Azure가 이러한 두 서비스 모두에 전용 IP 주소를 제공한다는 것이다. A 레코드를 사용하여 이를 가리키는 하위 도메인을 제공한다. 즉, Azure는 가상 호스트 설정을 활용하지 않는다. 그렇기 때문에 잠재적인 Subdomain Takeover취약점을 위해서는 DNS 상태가 NXDOMAIN인지 확인하기만 하면 된다. 

 

Azure의 Subdomain이 언제 가능한지에 대해 많은 오해가 있다. 간단한 dig 명령을 아래와 같이 실행해본다. 

 

( dig 명령어는 Domain Information Groper의 약자로, DNS 정보를 조회하고 진단하기 위한 커맨드라인 도구이다. )

dig -t A DOMAIN_TO_CHECK

 

응답 상태가 NXDOMAIN 이라면, takeover(인수) 할 수 있다. 404 Not Found 에러가 발생한다고 해서, Subdomain Takeover 취약점을 무조건 일으킬 수 있다는 것은 아니다. 앞서 말했듯이 이 서비스는 전용 VPS가 있다. 성공적인 Subdomain Takeover를 위해 DNS 요청은 항상 NXDOMAIN을 반환해야 한다. 

 

해당 보고서의 subdomain은 1fd05821-7501-40de-9e44-17235e7ab48b.cloudapp.net 를 가리켰다. poc를 만드는 과정은 아래와 같았다. 

 

1. 포털에서 새 클라우드 서비스를 만들고, 사용자 지정 도메인 이름을 요청한다. ( 해당 도메인 이름은 더 이상 가상 호스트를 사용하지 않으므로 일치해야 한다. 클라우드 서비스에서 CNAME에 사용할 도메인 이름을 요청하지 않는 것을 확인하면 이 이론을 확인할 수 있다. )

 

2. Azure 포털에서 클라우드 서비스에 대한 스토리지 계정을 생성한다. 

 

3. Azure에서는 클라우드 서비스 배포를 위해 Visual Studio에서 생성된 특정 형식이 필요하다. ( 간단한 ASP.NET 웹 애플리케이션을 만들고 이 클라우드 서비스에 업로드했다. )

 

4. DNS 로 인해,  svcgatewayus.starbucks.com의 A 레코드가 Azure를 가리키고 있으므로, HTTP 요청은 방금 배포한 ASP.NET 애플리케이션의 컨텐츠를 반환한다. 

 

Azure Websites의 경우 프로세스가 훨씬 더 간단하며, 기존 PaaS에 더 가깝다. Azure 웹 사이트용 PoC를 만들려면 

해당 튜토리얼을 참조한다. ( https://learn.microsoft.com/en-us/azure/app-service/quickstart-python?tabs=flask%2Cwindows%2Cazure-cli%2Cazure-cli-deploy%2Cdeploy-instructions-azportal%2Cterminal-bash%2Cdeploy-instructions-zip-azcli )

 

 

참고

 

https://www.sweepatic.com/subdomain-takeover-principles/

 

The Principles of a Subdomain Takeover

This blog post digs deep into the matter of Subdomain Takeovers, to make you understand all you need to know in order to defend yourself.

www.sweepatic.com

 

vps 란 무엇인가?

https://cloud.google.com/learn/what-is-a-virtual-private-server?hl=ko

 

가상 사설 서버(VPS)란 무엇인가요?  |  Google Cloud

가상 사설 서버(VPS)의 정의, 작동 방식, 그리고 다른 유형의 클라우드 호스팅 대신 이 호스팅 환경을 고려해야 하는 이유를 알아보세요.

cloud.google.com

 

vpc 는 무엇일까?

https://blog.naver.com/n_cloudplatform/222292617371

 

[네이버클라우드 기술&경험] VPC 낱낱이 알려드림 (ft. 인텔 FPGA 기반 스마트닉 SmartNIC 탑재)

비즈니스에 꼭 필요한 클라우드 네이버 클라우드 플랫폼 ncloud.com 입니다. 작년 9월 출시 후 많은 고객으...

blog.naver.com