原文:
https://fartademayur.medium.com/this-is-how-i-was-able-to-see-private-archived-posts-stories-of-users-on-instagram-without-de70ca39165c
我是Mayur Fartade,来自马哈拉施特拉邦。这是我在Facebook bug赏金程序中的第一个bug。
描述
这个漏洞可能会让恶意用户看到Instagram上的目标媒体。攻击者可以在不使用Media ID跟踪用户的情况下看到私人/归档帖子、故事、胶片、IGTV的细节。
细节包括像/评论/保存计数,display_url,图像。uri, Facebook链接页面(如果有)和其他。
影响
可能导致用户数据无法正常读取。攻击者可以重新生成存档故事和帖子的有效cdn url。此外,通过暴力强迫媒体ID,攻击者可以存储关于特定媒体的细节,然后过滤私有和存档。
重现步骤
1、获得目标的post/reel/IGTV/story媒体id(通过爆破或其他技术)
2、发送一个POST请求到https://i.instagram.com/api/v1/ads/graphql/
参数:
doc_id=[REDACTED]&query_params={“query_params”:{“access_token”:””,”id”:”[MEDIA_ID]”}}
3、其中[MEDIA_ID]是任何post/reel/IGTV/story的MEDIA_ID。
doc_id被更改。
4、在响应中,display_url, save_count和其他特定媒体的详细信息被公开。

几天后,我发现了另一个doc_id=[REDACTED]的端点,它公开了相同的信息。access_token是通过POST请求传递的,所以当我试图访问媒体的不同帐户,我得到的数据:null在响应。
步骤:
1. 发送一个POST请求到https://i.instagram.com/api/v1/ads/graphql/
参数:
access_token=[REDACTED]&variables={“query_params”:{“access_token”:””,”id”:”[MEDIA_ID]”},”fetch_actor_id”:false}&server_timestamps=true&doc_id=[REDACTED]
其中[MEDIA_ID]是任何post/reel/IGTV/story的MEDIA_ID。
doc_id被更改。
其他参数不包括在内。
access_token是有效的Facebook访问令牌。
响应

2. 然后我将access_token更改为null,并获得了对信息的访问权。
同样的端点是披露Facebook页面链接到一个Instagram帐户,但Facebook页面和Instagram帐户链接是公开的。你可以看到
https://www.facebook.com/ads/library/?active\_status=all&ad\_type=all&country=US&view\_all\_page\_id=PAGE\_ID&search\_type=page
其中PAGE_ID是Facebook页面ID。
参数:
access_token=null&variables={“query_params”:{“access_token”:””,”id”:”[MEDIA_ID]”},”fetch_actor_id”:false}&server_timestamps=true&doc_id=[REDACTED]
响应:

修复
Instagram改变了上述端点。
时间轴:
2021年4月16日:报告发送
2021年4月19日:来自Facebook安全团队的回复-需要更多信息
2021年4月19日:发送信息
2021年4月22日:分类报告
2021年4月23日:发现另一个端点披露相同的信息
2021年4月29日:修复
2021年4月29日:漏洞未完全修补。将信息发送给FaceBook安全团队
... 一些信息交换…
2021年6月15日:获得30000美元奖金。
译者:
难道越权的最终方式就是把身份权限标识换成null??
本文迁移自知识星球“火线Zone”