Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
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.

··Feed·Contatto·Privacy·© 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
7h 36m 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)

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

Architettura Corretta (docker-compose.patched.yml)

root@kitploit:~
┌─────────────────────────┐        ┌─────────────────────────┐
│       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:

root@kitploit:~
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):

root@kitploit:~
docker compose up -d

Verifica che entrambi i container siano in esecuzione:

root@kitploit:~
docker compose ps

Output atteso:

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

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

root@kitploit:~
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:

root@kitploit:~
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:

root@kitploit:~
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:

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

Output atteso:

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.
==============================================================

Smonta l'ambiente al termine:

root@kitploit:~
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/:

ArtefattoScopoLink al FileDescrizione
Screenshot 1Ambiente in Esecuzione01_lab_running.pngMostra vulnerable-request-baskets (porta 55556) e isolated-internal-service in esecuzione simultanea su lab-net.
Screenshot 2Sfruttamento SSRF02_reproduction_ssrf.pngMostra il flag esfiltrato CONFIDENTIAL_DATA{...} e lo stato VULNERABLE.
Screenshot 3Strumento di Rilevamento Difensivo03_detection_tool_run.pngMostra il controllo delle firme in due fasi e l'audit loopback che segnala VULNERABLE.
Screenshot 4Verifica della Correzione04_remediation_verified.pngDimostra il fallimento del relay (HTTP 502 / Host Unreachable) sotto la difesa di rete segmentata.
Screenshot 5Configurazione Web UI05_web_ui_ssrf.png(Bonus) Cattura browser delle impostazioni dell'interfaccia di Request-Baskets configurate con Proxy Response.

Procedure dettagliate, comandi e trascrizioni della console per ogni screenshot sono documentati in evidence/README.md.

Runner di Cattura Interattivo

Per catturare tutti gli screenshot del terminale in sequenza senza complicazioni di configurazione manuale, esegui:

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

Compilazione del PDF del Blog Tecnico

Compila il report tecnico accademico in PDF:

root@kitploit:~
python3 docs/generate_blog_pdf.py

Output generato: docs/CVE-2023-27163-Technical-Blog.pdf


Struttura del Progetto

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

Riferimenti e Crediti

Questa ricerca e lo sviluppo del laboratorio si basano su standard di sicurezza aperti, avvisi dei fornitori e database delle vulnerabilità:

  1. NIST National Vulnerability Database (NVD):
    CVE-2023-27163 Detail — Punteggio Base CVSS v3.1 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. Repository e Sorgente del Progetto Upstream:
    darklynx/request-baskets (GitHub) — Servizio web Request Baskets.
  4. OWASP Foundation:
    Server-Side Request Forgery Prevention Cheat Sheet.

Disclaimer

Questo laboratorio è destinato esclusivamente a scopi educativi e di ricerca sulla sicurezza autorizzata. Non utilizzare questi strumenti contro sistemi di cui non si è proprietari o per i quali non si ha esplicita autorizzazione al test.

Scarica lo strumento