Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2023-27163-lab — Lab basato su Docker che riproduce la SSRF CVE-2023-27163 in Request-Baskets, con verifica dell'exploitation, script di rilevamento e remediation tramite isolamento di rete. | Kitploit
Strumenti/GitHubGitHub/amulyakaushik/cve-2023-27163-lab
Strumenti DifensiviSicurezza dei ContenitoriAnalisi delle VulnerabilitàExploitSicurezza WebSicurezza di RetePenetration TestingApprendimento e FormazioneLab e Pratica

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
GitHubamulyakaushik/cve-2023-27163-lab

CVE-2023-27163-lab

Lab basato su Docker che riproduce la SSRF CVE-2023-27163 in Request-Baskets, con verifica dell'exploitation, script di rilevamento e remediation tramite isolamento di rete.

Vedi Repository
2220 giorni faNon ancora revisionato
Condividi

CVE-2023-27163 — Laboratorio SSRF Request-Baskets

Progetto: Laboratorio di Ricerca e Riproduzione di Vulnerabilità — CVE-2023-27163
Autore: Amulya Kaushik
Ruolo: Candidato Tirocinante in Cybersecurity R&S e Sviluppo Contenuti per il Laboratorio

Server-Side Request Forgery in Request-Baskets ≤ 1.2.1
Un laboratorio di ricerca locale autonomo per riprodurre, rilevare e correggere CVE-2023-27163 con un'architettura di difesa in profondità.


Profilo CVE

CampoValore
CVE IDCVE-2023-27163
CWECWE-918 — Server-Side Request Forgery (SSRF)
Prodotto AffettoRequest-Baskets
Versioni Affette≤ 1.2.1
Versione Corretta1.2.2 (Sorgente upstream) / Isolamento di Rete con Difesa in Profondità
Punteggio CVSS v3.16.5 (Medio)
Vettore CVSSAV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Complessità di AttaccoBassa — singola chiamata API non autenticata

Limitazioni Upstream e Strategia di Correzione

Nota sulle Limitazioni Upstream e la Correzione:
Sebbene CVE-2023-27163 riguardi la validazione arbitraria dell'URL di inoltro, le build pubbliche dei container di darklynx/request-baskets non applicano il filtraggio del loopback o delle sottoreti private out of the box. Seguendo le migliori pratiche DevSecOps del mondo reale, il nostro laboratorio dimostra la correzione attraverso l'Isolamento di Rete dei Container con Difesa in Profondità. Isolando i backend interni sensibili su una rete Docker solo interna (secure-internal-net con internal: true), il percorso di relay viene reciso, mitigando la sfruttabilità della vulnerabilità SSRF anche quando si eseguono forwarder di webhook non attendibili.


Panoramica dell'Architettura del Laboratorio

Questo laboratorio fornisce due topologie Docker Compose distinte:

  1. Configurazione Vulnerabile (docker-compose.yml): Request-Baskets e un servizio interno di echo di segreti condividono la rete bridge lab-net. Request-Baskets è mappato sulla porta host 55556 (mappata dalla porta container 55555).
  2. Configurazione Corretta (docker-compose.patched.yml): Request-Baskets è collegato esclusivamente a public-net, mentre il servizio echo interno è collegato a secure-internal-net (internal: true).

Architettura Vulnerabile (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 │
    └──────────┘

Architettura Corretta (docker-compose.patched.yml)

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

Prerequisiti

RequisitoVersione MinimaNote
Docker Engine20.10+Runtime di virtualizzazione dei container
Docker Composev2.0+Orchestrazione multi-container
Python3.8+Strumenti CLI di verifica e rilevamento

Configura l'ambiente virtuale Python e le dipendenze:

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

Istruzioni Passo-Passo

1. Avvia l'Ambiente di Laboratorio Vulnerabile

Avvia l'ambiente vulnerabile (Request-Baskets v1.2.1 accessibile su http://localhost:55556):

docker compose up -d

Verifica che entrambi i container siano in esecuzione:

docker compose ps

Output atteso:

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

Conferma che il servizio interno non sia direttamente raggiungibile dall'host:

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

2. Esegui la Riproduzione della Vulnerabilità (Esfiltrazione Dati)

Esegui lo script automatizzato di verifica SSRF:

python3 scripts/verify_vulnerability.py

Cosa succede:

  1. Lo strumento chiama /api/baskets/ssrf-verification-basket impostando forward_url: "http://internal-service:5678" e proxy_response: true.
  2. Invia una richiesta HTTP GET all'URL del basket.
  3. Cattura il payload inoltrato CONFIDENTIAL_DATA{INTERNAL_SSRF_DEMONSTRATION_SUCCESS} e restituisce RESULT: VULNERABLE.
  4. Elimina il basket di test.

3. Esegui lo Strumento di Rilevamento Difensivo

Esegui la sonda di audit non distruttiva:

python3 scripts/detect.py

Cosa succede:

  1. Fase 1: Corrisponde alle firme web di Request-Baskets.
  2. Fase 2: Verifica se l'inoltro loopback (http://127.0.0.1:80) viene accettato.
  3. Fase 3: Segnala AUDIT RESULT: VULNERABLE in caso di accettazione (HTTP 201) e pulisce il basket di prova.

4. Passa al Laboratorio Corretto e Verifica la Difesa

Passa alla topologia corretta segmentata:

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

Output atteso:

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

Smonta l'ambiente al termine:

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

Evidenze e Verifica (Deliverable 3)

Il portfolio completo di evidenze visive per il Deliverable 3 è mantenuto nella directory evidence/:

Scarica lo strumento