본문 바로가기

web/Bug Bounty 리포트 리뷰

Presigned URL을 이용한 인증 우회 - hackerone report #2337427

Report Info

  • URL (보고서 URL) : https://hackerone.com/reports/2337427
  • Title (보고서 제목) : Authentication Bypass with usage of PreSignedURL
  • Reported to (신고 대상) : ownCloud
  • Reported date (보고 날짜) : 2024. 1.27
  • Severity (취약 정도) : High (7.5)
  • Weakness (취약점) : Improper Access Control
  • Bounty (보상금) : $2,000

Description

ownCloud Infinite Scale (oCIS)에서 유저 이름과 파일 이름만 알면

어떠한 파일도 다운로드 받을 수 있는 취약점이다.

 

공유를 원하지 않는 파일 업로드

 

위처럼 해당 사이트에 어떤 사용자가 공유를 원하지 않는 파일을 cloud에 업로드 하더라도

PreSigned URL을 통해 해당 파일에 접근하여 다운로드 받을 수 있다.

 

https://{ownload-instance}/remote.php/dav/files/{username}/{filename}?OC-Credential={username}&OC-Verb=GET&OC-Expires=60&OC-Date=2024-01-27T00:00:00.000Z&OC-Signature=notchecked

 

해당 사이트에서 사용한 PreSigend URL은 위와 같다.

OC-Expires 파라미터와 OC-Date 파라미터의 값을 통해 해당 요청이 만료된 요청인지 서버에서 확인한다.

그리고 만료된 요청일 경우 error를 반환해야 하는데 해당 error 값이 NULL로 반환되어서

만료된 요청이더라도 해당 파일에 접근할 수 있게 한다.

 

인증 로직 우회

 

따라서 유저 이름과 파일 이름만 수정하여 어떠한 파일도 다운 받을 수 있는

상당히 취약한 버그이다.

 

느낀 점

코드만 봤을 때는 전혀 문제 없어 보인 인증 로직이었는데

실제 반환된 값은 예상과 다를 수 있어 코드로만 취약점을 파악하면 안된다는 것을 깨달았다.