Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/amulyakaushik/cve-2023-27163-lab
防御工具容器安全漏洞分析漏洞利用Web安全网络安全渗透测试学习与教育实验室与实践
GitHubamulyakaushik/cve-2023-27163-lab

CVE-2023-27163-lab

基于 Docker 的实验环境,复现 Request-Baskets 中的 CVE-2023-27163 SSRF 漏洞,包含利用验证、检测脚本和网络隔离修复措施。

7小时34分前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库

CVE-2023-27163 — Request-Baskets SSRF 实验环境

项目: 漏洞研究与复现实验环境 — CVE-2023-27163
作者: Amulya Kaushik
角色: 网络安全研发与实验内容开发实习生候选人

Request-Baskets ≤ 1.2.1 中的服务端请求伪造
一个自包含的本地研究实验环境,用于复现、检测和修复 CVE-2023-27163,采用纵深防御架构。


CVE 概况

字段值
CVE IDCVE-2023-27163
CWECWE-918 — 服务端请求伪造(SSRF)
受影响产品Request-Baskets
受影响版本≤ 1.2.1
修复版本1.2.2(上游源码)/ 纵深防御网络隔离
CVSS v3.1 评分6.5(中危)
CVSS 向量AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
攻击复杂度低 — 单次未认证 API 调用

上游限制与修复策略

关于上游限制与修复的说明:
虽然 CVE-2023-27163 涉及任意转发 URL 验证问题,但 darklynx/request-baskets 的公开容器构建默认并不强制实施回环或私有子网过滤。遵循真实世界的 DevSecOps 最佳实践,我们的实验环境通过纵深防御容器网络隔离来演示修复方案。通过将敏感的内部后端隔离到仅内部可访问的 Docker 网络(secure-internal-net,设置 internal: true),中继路径被切断,从而即使运行不受信任的 webhook 转发器,也能缓解 SSRF 漏洞的可利用性。


实验环境架构概览

本实验环境提供两种独立的 Docker Compose 拓扑:

  1. 易受攻击的配置(docker-compose.yml):Request-Baskets 和一个内部秘密回显服务共享桥接网络 lab-net。Request-Baskets 映射到主机端口 55556(从容器端口 55555 映射)。
  2. 修复后的配置(docker-compose.patched.yml):Request-Baskets 仅连接到 public-net,而内部回显服务连接到 secure-internal-net(internal: true)。

易受攻击的架构(docker-compose.yml)

root@kitploit:~
┌─────────────────────────────────────────────────────────┐
│                    Docker: lab-net                       │
│                                                         │
│  ┌─────────────────────┐    ┌────────────────────────┐  │
│  │  request-baskets     │───▶│  internal-service      │  │
│  │  (v1.2.1)           │    │  (http-echo:5678)      │  │
│  │  Port 55556 ◀──HOST │    │  NOT exposed to host   │  │
│  └─────────────────────┘    └────────────────────────┘  │
└─────────────────────────────────────────────────────────┘
         ▲
         │  HTTP (port 55556)
         │
    ┌────┴─────┐
    │ Attacker │
    └──────────┘

修复后的架构(docker-compose.patched.yml)

root@kitploit:~
┌─────────────────────────┐        ┌─────────────────────────┐
│       public-net        │        │   secure-internal-net   │
│                         │        │     (internal: true)    │
│  ┌───────────────────┐  │        │  ┌───────────────────┐  │
│  │  request-baskets   │  │   ✕    │  │ internal-service  │  │
│  │  Port 55556◀─HOST │  │ ──/──▶ │  │ (http-echo:5678) │  │
│  └───────────────────┘  │        │  └───────────────────┘  │
└─────────────────────────┘        └─────────────────────────┘

前置要求

要求最低版本说明
Docker Engine20.10+容器虚拟化运行时
Docker Composev2.0+多容器编排
Python3.8+CLI 验证与检测工具

设置 Python 虚拟环境及依赖:

root@kitploit:~
python3 -m venv .venv
source .venv/bin/activate
pip install requests fpdf2

分步操作说明

1. 启动易受攻击的实验环境

启动易受攻击的环境(Request-Baskets v1.2.1 可通过 http://localhost:55556 访问):

root@kitploit:~
docker compose up -d

验证两个容器均在运行:

root@kitploit:~
docker compose ps

预期输出:

root@kitploit:~
NAME                         IMAGE                             COMMAND                  SERVICE            STATUS   PORTS
isolated-internal-service    hashicorp/http-echo:latest        "/http-echo -text=CO…"   internal-service   Up       5678/tcp
vulnerable-request-baskets   darklynx/request-baskets:v1.2.1   "/bin/sh -c /bin/ent…"   request-baskets    Up       0.0.0.0:55556->55555/tcp

确认内部服务无法从主机直接访问:

root@kitploit:~
curl http://localhost:5678 2>&1 || echo "Connection refused — internal service isolated as expected"

2. 执行漏洞复现(数据外泄)

执行自动化 SSRF 验证脚本:

root@kitploit:~
python3 scripts/verify_vulnerability.py

执行过程:

  1. 该工具调用 /api/baskets/ssrf-verification-basket,设置 forward_url: "http://internal-service:5678" 和 proxy_response: true。
  2. 向 basket URL 发送 HTTP GET 请求。
  3. 捕获中继的载荷 CONFIDENTIAL_DATA{INTERNAL_SSRF_DEMONSTRATION_SUCCESS} 并输出 RESULT: VULNERABLE。
  4. 删除测试 basket。

3. 执行防御性检测工具

运行非破坏性审计探测:

root@kitploit:~
python3 scripts/detect.py

执行过程:

  1. 阶段 1: 匹配 Request-Baskets Web 特征。
  2. 阶段 2: 探测是否接受回环转发(http://127.0.0.1:80)。
  3. 阶段 3: 若接受(HTTP 201),报告 AUDIT RESULT: VULNERABLE 并清理探测 basket。

4. 切换到修复后的实验环境并验证防御

切换到分段修复后的拓扑:

root@kitploit:~
docker compose down
docker compose -f docker-compose.patched.yml up -d
python3 scripts/verify_vulnerability.py

预期输出:

root@kitploit:~
==============================================================
[✓] REMEDIATION VERIFIED: TARGET SECURED
    The Request-Baskets instance failed to reach the internal
    isolated service (HTTP 502 / Host Unreachable).
    Network segmentation successfully prevented SSRF data exfiltration.
==============================================================

完成后拆除环境:

root@kitploit:~
docker compose -f docker-compose.patched.yml down

证据与验证(交付物 3)

交付物 3 的完整可视化证据集维护在 evidence/ 目录中:

每张截图的详细操作步骤、命令和控制台记录均记录在 evidence/README.md 中。

交互式截图捕获运行器

要按顺序捕获所有终端截图而无需手动设置的麻烦,请运行:

root@kitploit:~
./scripts/capture_evidence_flow.sh

编译技术博客 PDF

将学术技术报告编译为 PDF:

root@kitploit:~
python3 docs/generate_blog_pdf.py

生成的输出:docs/CVE-2023-27163-Technical-Blog.pdf


项目结构

root@kitploit:~
cve-2023-27163-lab/
├── .gitignore                      # Git artifact exclusions (.venv, cache, OS files)
├── docker-compose.yml              # Vulnerable environment (shared lab-net, port 55556)
├── docker-compose.patched.yml      # Remediated environment (disjoint network isolation)
├── README.md                       # Complete documentation, attribution & guide
├── scripts/
│   ├── capture_evidence_flow.sh    # Interactive runner for capturing screenshots
│   ├── verify_vulnerability.py     # SSRF exploitation & remediation verification CLI
│   └── detect.py                   # Defensive audit and detection tool
├── evidence/
│   └── README.md                   # Formal screenshot evidence walkthrough
└── docs/
    ├── technical_blog.md           # Academic technical write-up (800–1,200 words)
    ├── generate_blog_pdf.py        # Markdown → PDF converter
    └── CVE-2023-27163-Technical-Blog.pdf # Compiled academic report PDF

参考资料与致谢

本研究与实验环境开发基于开放安全标准、厂商公告和漏洞数据库:

  1. NIST 国家漏洞数据库(NVD):
    CVE-2023-27163 详情 — CVSS v3.1 基础评分 6.5(AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N)。
  2. MITRE 通用缺陷枚举(CWE):
    CWE-918:服务端请求伪造(SSRF)。
  3. 上游项目仓库与源码:
    darklynx/request-baskets (GitHub) — Request Baskets Web 服务。
  4. OWASP 基金会:
    服务端请求伪造防护速查表。

免责声明

本实验环境仅供教育和授权安全研究目的使用。请勿将这些工具用于您不拥有或未获得明确测试许可的系统。

下载工具
制品用途文件链接描述
截图 1环境运行中01_lab_running.png显示 vulnerable-request-baskets(端口 55556)和 isolated-internal-service 同时在 lab-net 上运行。
截图 2SSRF 利用02_reproduction_ssrf.png显示外泄的 CONFIDENTIAL_DATA{...} 标志和 VULNERABLE 状态。
截图 3防御性检测工具03_detection_tool_run.png显示双阶段特征检查及标记 VULNERABLE 的回环审计。
截图 4修复验证04_remediation_verified.png证明在分段网络防御下中继失败(HTTP 502 / Host Unreachable)。
截图 5Web UI 配置05_web_ui_ssrf.png(附加) 浏览器截图,显示 Request-Baskets UI 设置中配置了 Proxy Response。