-
[Bugbounty Study] #Cross Domain Referrer LeakageStudy/Bugbounty Study 2021. 1. 13. 17:10
# Cross Domain Referrer Leakage _ \$300
mohsinalibukc.medium.com/cross-domain-referrer-leakage-7873ada102ad
Cross Domain Referrer Leakage
It is my first writeup so please ignore the mistakes.
mohsinalibukc.medium.com
해당 취약점이 발생한 타겟 서버는 공개하지 않았다.
Cross Domain Referrer Leakage*를 재현하기 위한 방법은 아래와 같다.
[ 취약점 재현 방법 ]
1. 비밀번호 재설정(비밀번호 찾기) 링크를 이메일 주소로 전송한다.
2. 비밀번호 재설정 링크를 Burp-suite가 설정된 브라우저에 입력한다.
3. Burp-suite를 이용하여 Request를 가로챈다.
4. Referrer Header에 포함된 비밀번호 재설정 링크를 확인한 후 Host를 확인한다.
5. 비밀번호 재설정 링크가 토큰을 포함하고 있고 Host가 Third Party 웹 사이트인 경우 취약하다.해당 방법을 통해 가로챈 Request는 아래와 같다. Request를 보면 비밀번호 재설정 링크에 토큰을 포함하고 있고, Host가 다르기 때문에 취약한 것으로 판단할 수 있다.
Cross Domain Referrer Leakage*
Referrer Header는 요청 헤더로, 현재 웹 사이트에 도달하기 이전의 URL에 대한 정보를 전송하는 헤더이다. Referrer Header는 웹 페이지가 이미지나 스크립트를 로드하거나, 사용자가 버튼을 클릭하는 등 다양한 상황에서 요청된다.
Referrer Header에 포함되는 정보는 특히 비즈니스에 많이 활용되는데, 이때, Referrer Header를 통해 중요한 정보를 포함한 URL이 써드파티 도메인에 전송되어 민감한 데이터가 노출되면 보안상 문제가 발생할 수 있다.
비즈니스 활용 예시:
- 광고를 통해 해당 광고를 클릭한 User가 어떤 경로로 방문했는지에 대한 분석
- 가장 자주 방문하는 페이지 및 연결되어 있는 원본 페이지 파악
- 수집한 세부 정보를 로그에 기록한 후 데이터 패턴 식별[Impact]
URL은 비밀번호 재설정 토큰, 세션 ID 또는 개인 식별 정보 등 민감한 정보를 포함할 수 있는데, 이는 User 또는 사이트를 공격하는 데 이용될 수 있다. 또한, 헤더 정보는 서버 로그, 프록시 로그, 위협 탐지 시스템 등 다양한 곳에 저장되기 때문에 중요한 정보가 노출될 가능성이 높다.
URL 경로에 비밀번호 재설정 토큰이 포함되는 경우가 있는데, 해당 URL( 토큰이 포함된 URL )을 통해 사용자의 비밀번호를 재설정함으로써 계정을 탈취할 수 있다. 이때, 해당 계정이 인터넷 뱅킹 계정과 같이 돈거래와 관련된 계정이거나 관리자 페이지 같은 특별한 권한으로 접근할 수 있는 계정인 경우 훨씬 위험성이 증가한다.
[방지 방법]
- 중요한 데이터를 GET 방식을 이용하여 전송하지 않는다.
- URL에 중요한 데이터를 전송해야 하는 경우 암호화하여 전송한다.
- 모든 URL 및 모든 도메인에 Referrer Header를 설정하지 않는다.
- Referrer Header를 설정해야 하는 경우, HTTP Header의 Referrer-Policy를 이용하여 써드파티 도메인에 노출될 가능성을 최소화한다.
최근의 브라우저는 새로고침 지시가 발생하거나, HTTPS에서 로드된 페이지에서 Non-HTTPS의 리소스를 로드하는 등의 일부 상황에서는 Referrer Header를 제공하지 않는다. 하지만 이것으로 보호하려 하면 안 된다.
[참고]
- portswigger.net/kb/issues/00500400_cross-domain-referer-leakage
- www.geeksforgeeks.org/cross-domain-referrer-header-leakage/
- applicationsecurity.io/appsec-findings-database/cross-domain-referrer-leakage/
'Study > Bugbounty Study' 카테고리의 다른 글
[Bugbounty Study] #Vimeo _ SSRF (0) 2021.01.27 [Bugbounty Study] #GitHub _ Account Takeover (0) 2021.01.20 [Bugbounty Study] #Time-Based Blind SQL Injection (2) 2021.01.09 [Bugbounty Study] #Amazon S3 _ Sensitive Data Exposure (0) 2020.12.29 [Bugbounty Study] #Facebook (0) 2020.12.17 댓글