白帽故事 · 2025年1月20日 0

如何利用 AI 发现 Amazon S3 存储桶接管漏洞

很多漏洞赏金计划都提供了明确定义的范围,其中包括允许安全研究人员测试的多个领域。

本文中方法的关键步骤就是设置一个域监控脚本(以红牛为例),用于跟踪赏金范围内的任何更改。

我们可以要求 ChatGPT 创建一个监控脚本,从而确保我们可以有效地跟踪范围的任何更新或修改。

脚本如下:

import requests
import time

API_TOKEN = 'Your_Telegram_Bot_API_Token' 
CHAT_ID = 'Your_Telegram_Chat_ID'
GIST_URL = 'https://gist.githubusercontent.com/RedBullSecurity/3eb88debcb01759eccf65ec2b799b340/raw/redbull-bug-bounty-scope-rb-only.txt'

previous_urls = []

def send_telegram_message(message):
    url = f'https://api.telegram.org/bot{API_TOKEN}/sendMessage'
    data = {'chat_id': CHAT_ID, 'text': message}
    requests.post(url, data=data)

while True:
    response = requests.get(GIST_URL)
    current_content = response.text
    current_urls = current_content.splitlines()

    new_urls = [url for url in current_urls if url not in previous_urls]
    deleted_urls = [url for url in previous_urls if url not in current_urls]

    if new_urls:
        new_message = "New URLs added:\n" + "\n".join(new_urls)
        send_telegram_message(new_message)
        previous_urls = current_urls

    if deleted_urls:
        deleted_message = "URLs deleted:\n" + "\n".join(deleted_urls)
        send_telegram_message(deleted_message)
        previous_urls = current_urls

    time.sleep(60) # Check every 1 minute

该脚本可以在 VPS 上实时运行,一旦范围发生变化,就会通过 Telegram 发送通知。

因为目标经常更新其漏洞范围,错过这些更新就意味着可能错过漏洞。

成功收到TG消息:

file

通过深入研究这个新的子域,很快便发现了与该域关联的 Amazon S3 存储桶配置错误。

file

一旦发现 S3 存储桶配置错误问题,我们就可以遵循以下规则尝试挖掘存储桶接管漏洞:

  • 枚举 S3 存储桶:使用awscli等工具,枚举与存储桶相关联的权限
  • 漏洞测试:一旦发现该存储桶允许公共写入访问,就意味着可以上传任意文件
  • 确认接管:通过上传一个简单的 HTML 文件并公开访问它,从而确认接管

file

最后就是报告漏洞,等待奖励。

file

你学会了么?

以上内容由骨哥翻译并整理。

原文:https://infosecwriteups.com/how-i-utilized-ai-to-discover-an-amazon-s3-bucket-takeover-vulnerability-in-red-bulls-bug-bounty-503d3c4d995f