Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/amulyakaushik/cve-2023-27163-lab
防御ツールコンテナセキュリティ脆弱性分析エクスプロイトウェブセキュリティネットワークセキュリティペネトレーションテスト学習と教育ラボと実践
GitHubamulyakaushik/cve-2023-27163-lab

CVE-2023-27163-lab

Dockerベースのラボで、Request-BasketsにおけるCVE-2023-27163 SSRFを再現し、悪用検証、検出スクリプト、ネットワーク分離による緩和策を提供します。

31日前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
リポジトリを見る

CVE-2023-27163 — Request-Baskets SSRF ラボ

プロジェクト: 脆弱性研究・再現ラボ — CVE-2023-27163
著者: Amulya Kaushik
役割: サイバーセキュリティ R&D & ラボコンテンツ開発インターン候補

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 ネットワーク (internal: true の secure-internal-net) に隔離することで、リレーパスが遮断され、信頼できない Webhook フォワーダーを実行している場合でも SSRF 脆弱性の悪用可能性が軽減されます。


ラボアーキテクチャ概要

このラボでは、2 つの個別の 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. バスケット URL に HTTP GET を送信します。
  3. リレーされたペイロード CONFIDENTIAL_DATA{INTERNAL_SSRF_DEMONSTRATION_SUCCESS} をキャプチャし、RESULT: VULNERABLE を出力します。
  4. テストバスケットを削除します。

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 を報告し、プローブバスケットをクリーンアップします。

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 National Vulnerability Database (NVD):
    CVE-2023-27163 Detail — CVSS v3.1 Base Score 6.5 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N)。
  2. MITRE Common Weakness Enumeration (CWE):
    CWE-918: Server-Side Request Forgery (SSRF)。
  3. アップストリームプロジェクトリポジトリとソース:
    darklynx/request-baskets (GitHub) — Request Baskets Web サービス。
  4. OWASP Foundation:
    Server-Side Request Forgery Prevention Cheat Sheet。

免責事項

このラボは、教育および許可されたセキュリティ研究目的のみ を意図しています。所有していない、または明示的なテスト許可を得ていないシステムに対してこれらのツールを使用しないでください。

ツールをダウンロード
成果物目的ファイルリンク説明
スクリーンショット 1環境実行中01_lab_running.pngvulnerable-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(ボーナス) Proxy Response で設定された Request-Baskets UI 設定のブラウザキャプチャ。