Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2023-27163-lab — Docker-basiertes Lab zur Reproduktion von CVE-2023-27163 SSRF in Request-Baskets, mit Exploit-Verifikation, Erkennungsskript und Netzwerkisolations-Remediation. | Kitploit
Tools/GitHubGitHub/amulyakaushik/cve-2023-27163-lab
DefensivwerkzeugeContainer-SicherheitSchwachstellenanalyseExploitationWebsicherheitNetzwerksicherheitPenetrationstestsLernen & BildungLabs & Praxis

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
GitHubamulyakaushik/cve-2023-27163-lab

CVE-2023-27163-lab

Docker-basiertes Lab zur Reproduktion von CVE-2023-27163 SSRF in Request-Baskets, mit Exploit-Verifikation, Erkennungsskript und Netzwerkisolations-Remediation.

Repository anzeigen
22vor 20 TagenNoch nicht geprüft
Teilen

CVE-2023-27163 — Request-Baskets SSRF-Lab

Projekt: Vulnerability Research & Reproduction Lab — CVE-2023-27163
Autor: Amulya Kaushik
Rolle: Cybersecurity R&D & Lab Content Development Intern Candidate

Server-Side Request Forgery in Request-Baskets ≤ 1.2.1
Ein eigenständiges lokales Forschungslabor zur Reproduktion, Erkennung und Behebung von CVE-2023-27163 mit Defense-in-Depth-Architektur.


CVE-Profil

FeldWert
CVE-IDCVE-2023-27163
CWECWE-918 — Server-Side Request Forgery (SSRF)
Betroffenes ProduktRequest-Baskets
Betroffene Versionen≤ 1.2.1
Behobene Version1.2.2 (Upstream-Quellcode) / Defense-in-Depth-Netzwerkisolierung
CVSS v3.1 Score6.5 (Mittel)
CVSS-VektorAV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
AngriffskomplexitätGering — einzelner unauthentifizierter API-Aufruf

Upstream-Einschränkungen & Behebungsstrategie

Hinweis zu Upstream-Einschränkungen & Behebung:
Während CVE-2023-27163 die Validierung beliebiger Forward-URLs betrifft, erzwingen öffentliche Container-Builds von darklynx/request-baskets nicht standardmäßig eine Loopback- oder Private-Subnet-Filterung. Nach realen DevSecOps-Best-Practices demonstriert unser Labor die Behebung durch Defense-in-Depth-Container-Netzwerkisolierung. Durch die Isolierung sensibler interner Backends in einem rein internen Docker-Netzwerk (secure-internal-net mit internal: true) wird der Relay-Pfad unterbrochen, wodurch die Ausnutzbarkeit der SSRF-Schwachstelle selbst beim Betrieb nicht vertrauenswürdiger Webhook-Forwarder gemindert wird.


Überblick über die Labor-Architektur

Dieses Labor bietet zwei separate Docker-Compose-Topologien:

  1. Verwundbare Umgebung (docker-compose.yml): Request-Baskets und ein interner Secret-Echo-Service teilen sich das Bridge-Netzwerk lab-net. Request-Baskets ist auf Host-Port 55556 gemappt (gemappt von Container-Port 55555).
  2. Behobene Umgebung (docker-compose.patched.yml): Request-Baskets ist ausschließlich an public-net angebunden, während der interne Echo-Service an secure-internal-net (internal: true) angebunden ist.

Verwundbare Architektur (docker-compose.yml)

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

Behobene Architektur (docker-compose.patched.yml)

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

Voraussetzungen

AnforderungMindestversionHinweise
Docker Engine20.10+Container-Virtualisierungslaufzeit
Docker Composev2.0+Multi-Container-Orchestrierung
Python3.8+CLI-Verifikations- und Erkennungstools

Einrichtung der Python-virtuellen-Umgebung und Abhängigkeiten:

python3 -m venv .venv
source .venv/bin/activate
pip install requests fpdf2

Schritt-für-Schritt-Anleitung

1. Starten der verwundbaren Laborumgebung

Starten Sie die verwundbare Umgebung (Request-Baskets v1.2.1 erreichbar unter http://localhost:55556):

docker compose up -d

Überprüfen Sie, dass beide Container laufen:

docker compose ps

Erwartete Ausgabe:

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

Bestätigen Sie, dass der interne Service nicht direkt vom Host erreichbar ist:

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

2. Ausführen der Schwachstellenreproduktion (Datenexfiltration)

Führen Sie das automatisierte SSRF-Verifikationsskript aus:

python3 scripts/verify_vulnerability.py

Was passiert:

  1. Das Tool ruft /api/baskets/ssrf-verification-basket auf und setzt forward_url: "http://internal-service:5678" sowie proxy_response: true.
  2. Es sendet ein HTTP GET an die Basket-URL.
  3. Es erfasst die weitergeleitete Nutzlast CONFIDENTIAL_DATA{INTERNAL_SSRF_DEMONSTRATION_SUCCESS} und gibt RESULT: VULNERABLE aus.
  4. Es löscht den Test-Basket.

3. Ausführen des defensiven Erkennungstools

Führen Sie die nicht-destruktive Audit-Sonde aus:

python3 scripts/detect.py

Was passiert:

  1. Phase 1: Abgleich mit Request-Baskets-Web-Signaturen.
  2. Phase 2: Prüft, ob Loopback-Weiterleitung (http://127.0.0.1:80) akzeptiert wird.
  3. Phase 3: Meldet AUDIT RESULT: VULNERABLE bei Akzeptanz (HTTP 201) und bereinigt den Probe-Basket.

4. Wechsel zur behobenen Umgebung & Überprüfung der Verteidigung

Wechseln Sie zur segmentierten behobenen Topologie:

docker compose down
docker compose -f docker-compose.patched.yml up -d
python3 scripts/verify_vulnerability.py

Erwartete Ausgabe:

==============================================================
[✓] 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.
==============================================================

Bauen Sie die Umgebung nach Abschluss ab:

docker compose -f docker-compose.patched.yml down

Nachweise & Verifikation (Deliverable 3)

Das vollständige visuelle Nachweisportfolio für Deliverable 3 wird im Verzeichnis evidence/ geführt:

Tool herunterladen