본문 바로가기

web/Bug Bounty 리포트 리뷰

Download permission change - hackerone report #1724016

Report Info

  • URL (보고서 URL) : https://hackerone.com/reports/1724016
  • Title (보고서 제목) : Download permissions can be changed by resharer
  • Reported to (신고 대상) : Nextcloud
  • Reported date (보고 날짜) : 2022.10. 6
  • Severity (취약 정도) : Medium (5.7)
  • Weakness (취약점) : Improper Access Control
  • Bounty (보상금) : $500

Description

Broken Access Control로 인해 발생한 매우 간단한 버그이다.

 

Netcloud의 파일 공유 API를 사용하여 다운로드 불가 권한의 파일을

내부적으로 공유하고 해당 파일을 공유받은 사람이 또 다른 사람에게

해당 파일을 공유할 경우 해당 공유 항목의 ID 번호가 달라져 PUT 메소드로

해당 리소스의 권한을 수정할 수 있는 버그이다.

 

예를 들어 A라는 사람이 B라는 사람에게 다운로드 불가 권한의 파일을 공유할 때

해당 공유 항목은 ID 10을 부여받는다. 그 후 B라는 사람이 C라는 사람에게

A에게 공유받은 파일을 공유할 때 해당 공유 항목에 11이라는 ID가 부여되어

A가 설정해놓은 다운로드 불가 권한에서 자유롭게 된다.

 

curl -u user2:pass 'https://SERVER/ocs/v2.php/apps/files_sharing/api/v1/shares/11' -X PUT -H "OCS-APIREQUEST: true" -H 'Content-Type: application/json' --data-raw '{"permissions":"17","attributes":"[{\"scope\":\"permissions\",\"key\":\"download\",\"enabled\":true}]"}'

 

위는 리포트 제보자가 curl로 공유 항목의 권한을 수정하기 위해 사용한 명령어이다.

 

위의 취약점을 통해 다운로드 불가 권한 설정의 기능이 무력화되어 어떠한 공유받은 파일도

다운로드 받을 수 있게 된다.


느낀 점

일주일 동안 버그바운티 리포트를 상당히 많이 읽었는데 최근 리포트를 보면

Access Control과 관련된 문제가 상당히 많은 것 같다.

실제 취약점을 찾을 때 Access Control을 중점으로 분석해보는 것도 좋을 것 같다.