Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Submit
ToolsExploitsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

FeedsContactPrivacyΒ© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
CVE-2023-27163-lab β€” Docker-based lab reproducing CVE-2023-27163 SSRF in Request-Baskets, with exploitation verification, detection script, and network-isolation remediation. | Kitploit
Tools/GitHubGitHub/amulyakaushik/cve-2023-27163-lab
Defensive ToolsContainer SecurityVulnerability AnalysisExploitationWeb SecurityNetwork SecurityPenetration TestingLearning & EducationLabs & Practice

Most Popular

View all β†’

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools β†’
GitHubamulyakaushik/cve-2023-27163-lab

CVE-2023-27163-lab

Docker-based lab reproducing CVE-2023-27163 SSRF in Request-Baskets, with exploitation verification, detection script, and network-isolation remediation.

View Repository
2220 days agoNot yet reviewed
Share

CVE-2023-27163 β€” Request-Baskets SSRF Lab

Project: Vulnerability Research & Reproduction Lab β€” CVE-2023-27163
Author: Amulya Kaushik
Role: Cybersecurity R&D & Lab Content Development Intern Candidate

Server-Side Request Forgery in Request-Baskets ≀ 1.2.1
A self-contained local research lab for reproducing, detecting, and remediating CVE-2023-27163 with defense-in-depth architecture.


CVE Profile

FieldValue
CVE IDCVE-2023-27163
CWECWE-918 β€” Server-Side Request Forgery (SSRF)
Affected ProductRequest-Baskets
Affected Versions≀ 1.2.1
Fixed Version1.2.2 (Upstream source) / Defense-in-Depth Network Isolation
CVSS v3.1 Score6.5 (Medium)
CVSS VectorAV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Attack ComplexityLow β€” single unauthenticated API call

Upstream Limitations & Remediation Strategy

Note on Upstream Limitations & Remediation:
While CVE-2023-27163 tracks arbitrary forward URL validation, public container builds of darklynx/request-baskets do not enforce loopback or private subnet filtering out of the box. Following real-world DevSecOps best practices, our lab demonstrates remediation through Defense-in-Depth Container Network Isolation. By isolating sensitive internal backends onto an internal-only Docker network (secure-internal-net with internal: true), the relay path is severed, mitigating the exploitability of the SSRF vulnerability even when running untrusted webhook forwarders.


Lab Architecture Overview

This lab provides two discrete Docker Compose topologies:

  1. Vulnerable Setup (docker-compose.yml): Request-Baskets and an internal secret echo service share the bridge network lab-net. Request-Baskets is mapped to host port 55556 (mapped from container port 55555).
  2. Remediated Setup (docker-compose.patched.yml): Request-Baskets is attached exclusively to public-net, while the internal echo service is attached to secure-internal-net (internal: true).

Vulnerable Architecture (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 β”‚
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Remediated Architecture (docker-compose.patched.yml)

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚       public-net        β”‚        β”‚   secure-internal-net   β”‚
β”‚                         β”‚        β”‚     (internal: true)    β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚        β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚  request-baskets   β”‚  β”‚   βœ•    β”‚  β”‚ internal-service  β”‚  β”‚
β”‚  β”‚  Port 55556◀─HOST β”‚  β”‚ ──/──▢ β”‚  β”‚ (http-echo:5678) β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚        β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Prerequisites

RequirementMinimum VersionNotes
Docker Engine20.10+Container virtualization runtime
Docker Composev2.0+Multi-container orchestration
Python3.8+CLI verification and detection tools

Setup Python virtual environment and dependencies:

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

Step-by-Step Instructions

1. Launch the Vulnerable Lab Environment

Start the vulnerable environment (Request-Baskets v1.2.1 accessible at http://localhost:55556):

docker compose up -d

Verify that both containers are running:

docker compose ps

Expected output:

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

Confirm that the internal service is not directly reachable from the host:

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

2. Execute Vulnerability Reproduction (Data Exfiltration)

Execute the automated SSRF verification script:

python3 scripts/verify_vulnerability.py

What happens:

  1. The tool calls /api/baskets/ssrf-verification-basket setting forward_url: "http://internal-service:5678" and proxy_response: true.
  2. It sends an HTTP GET to the basket URL.
  3. It captures the relayed payload CONFIDENTIAL_DATA{INTERNAL_SSRF_DEMONSTRATION_SUCCESS} and outputs RESULT: VULNERABLE.
  4. It deletes the test basket.

3. Execute Defensive Detection Tool

Run the non-destructive audit probe:

python3 scripts/detect.py

What happens:

  1. Phase 1: Matches Request-Baskets web signatures.
  2. Phase 2: Probes whether loopback forwarding (http://127.0.0.1:80) is accepted.
  3. Phase 3: Reports AUDIT RESULT: VULNERABLE upon acceptance (HTTP 201) and cleans up the probe basket.

4. Switch to Remediated Lab & Verify Defense

Switch to the segmented remediated topology:

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

Expected output:

==============================================================
[βœ“] 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.
==============================================================

Tear down the environment when finished:

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

Evidence & Verification (Deliverable 3)

The complete visual evidence portfolio for Deliverable 3 is maintained in the evidence/ directory:

ArtifactPurposeFile LinkDescription
Screenshot 1Environment Running01_lab_running.pngShows vulnerable-request-baskets (port 55556) & isolated-internal-service running simultaneously on lab-net.
Screenshot 2SSRF Exploitation02_reproduction_ssrf.pngDisplays exfiltrated CONFIDENTIAL_DATA{...} flag and VULNERABLE status.
Screenshot 3Defensive Detection Tool03_detection_tool_run.pngDisplays dual-phase signature check and loopback audit flagging VULNERABLE.
Screenshot 4Remediation Verification04_remediation_verified.pngProves relay failure (HTTP 502 / Host Unreachable) under segmented network defense.
Screenshot 5Web UI Configuration05_web_ui_ssrf.png(Bonus) Browser capture of Request-Baskets UI settings configured with Proxy Response.
Download Tool