Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2023-27163-lab — Labo basé sur Docker reproduisant la SSRF CVE-2023-27163 dans Request-Baskets, avec vérification de l'exploitation, script de détection et remédiation par isolation réseau. | Kitploit
Outils/GitHubGitHub/amulyakaushik/cve-2023-27163-lab
Outils DéfensifsSécurité des ConteneursAnalyse des VulnérabilitésExploitationSécurité WebSécurité RéseauTests d'IntrusionApprentissage et ÉducationLabs et Pratique
GitHubamulyakaushik/cve-2023-27163-lab

CVE-2023-27163-lab

Labo basé sur Docker reproduisant la SSRF CVE-2023-27163 dans Request-Baskets, avec vérification de l'exploitation, script de détection et remédiation par isolation réseau.

Voir le dépôt
3il y a 1 jourPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2023-27163 — Laboratoire SSRF Request-Baskets

Projet : Laboratoire de recherche et de reproduction de vulnérabilités — CVE-2023-27163
Auteur : Amulya Kaushik
Rôle : Candidat au stage en R&D cybersécurité et développement de contenu de laboratoire

Server-Side Request Forgery dans Request-Baskets ≤ 1.2.1
Un laboratoire de recherche local autonome pour reproduire, détecter et corriger CVE-2023-27163 avec une architecture de défense en profondeur.


Profil de la CVE

ChampValeur
ID CVECVE-2023-27163
CWECWE-918 — Server-Side Request Forgery (SSRF)
Produit affectéRequest-Baskets
Versions affectées≤ 1.2.1
Version corrigée1.2.2 (Source amont) / Isolation réseau de défense en profondeur
Score CVSS v3.16.5 (Moyen)
Vecteur CVSSAV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Complexité d'attaqueFaible — un seul appel API non authentifié

Limitations amont et stratégie de remédiation

Note sur les limitations amont et la remédiation :
Bien que CVE-2023-27163 concerne la validation d'URL de transfert arbitraire, les builds de conteneurs publics de darklynx/request-baskets n'appliquent pas de filtrage loopback ou de sous-réseau privé par défaut. Suivant les meilleures pratiques DevSecOps du monde réel, notre laboratoire démontre la remédiation par isolation réseau de conteneurs en défense en profondeur. En isolant les backends internes sensibles sur un réseau Docker interne uniquement (secure-internal-net avec internal: true), le chemin de relais est coupé, atténuant l'exploitabilité de la vulnérabilité SSRF même lors de l'exécution de forwarders de webhooks non fiables.


Aperçu de l'architecture du laboratoire

Ce laboratoire fournit deux topologies Docker Compose distinctes :

  1. Configuration vulnérable (docker-compose.yml) : Request-Baskets et un service interne d'écho de secret partagent le réseau bridge lab-net. Request-Baskets est mappé sur le port hôte 55556 (mappé depuis le port conteneur 55555).
  2. Configuration corrigée (docker-compose.patched.yml) : Request-Baskets est attaché exclusivement à public-net, tandis que le service d'écho interne est attaché à secure-internal-net (internal: true).

Architecture vulnérable (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 │
    └──────────┘

Architecture corrigée (docker-compose.patched.yml)

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

Prérequis

ExigenceVersion minimaleNotes
Docker Engine20.10+Runtime de virtualisation de conteneurs
Docker Composev2.0+Orchestration multi-conteneurs
Python3.8+Outils de vérification et de détection en CLI

Configuration de l'environnement virtuel Python et des dépendances :

root@kitploit:~
python3 -m venv .venv
source .venv/bin/activate
pip install requests fpdf2

Instructions étape par étape

1. Lancer l'environnement de laboratoire vulnérable

Démarrer l'environnement vulnérable (Request-Baskets v1.2.1 accessible à http://localhost:55556) :

root@kitploit:~
docker compose up -d

Vérifier que les deux conteneurs sont en cours d'exécution :

root@kitploit:~
docker compose ps

Sortie attendue :

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

Confirmer que le service interne n'est pas directement accessible depuis l'hôte :

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

2. Exécuter la reproduction de la vulnérabilité (exfiltration de données)

Exécuter le script automatisé de vérification SSRF :

root@kitploit:~
python3 scripts/verify_vulnerability.py

Ce qui se passe :

  1. L'outil appelle /api/baskets/ssrf-verification-basket en définissant forward_url: "http://internal-service:5678" et proxy_response: true.
  2. Il envoie un GET HTTP à l'URL du panier.
  3. Il capture la charge utile relayée CONFIDENTIAL_DATA{INTERNAL_SSRF_DEMONSTRATION_SUCCESS} et affiche RESULT: VULNERABLE.
  4. Il supprime le panier de test.

3. Exécuter l'outil de détection défensive

Lancer la sonde d'audit non destructive :

root@kitploit:~
python3 scripts/detect.py

Ce qui se passe :

  1. Phase 1 : Correspond aux signatures web de Request-Baskets.
  2. Phase 2 : Sonde si le transfert loopback (http://127.0.0.1:80) est accepté.
  3. Phase 3 : Signale AUDIT RESULT: VULNERABLE en cas d'acceptation (HTTP 201) et nettoie le panier de sonde.

4. Basculer vers le laboratoire corrigé et vérifier la défense

Basculer vers la topologie corrigée segmentée :

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

Sortie attendue :

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

Démonter l'environnement une fois terminé :

root@kitploit:~
docker compose -f docker-compose.patched.yml down

Preuves et vérification (Livrable 3)

Le portefeuille complet de preuves visuelles pour le Livrable 3 est maintenu dans le répertoire evidence/ :

ArtefactObjectifLien du fichierDescription
Capture d'écran 1Environnement en cours d'exécution01_lab_running.pngMontre vulnerable-request-baskets (port 55556) et isolated-internal-service fonctionnant simultanément sur lab-net.
Capture d'écran 2Exploitation SSRF02_reproduction_ssrf.pngAffiche le drapeau CONFIDENTIAL_DATA{...} exfiltré et le statut VULNERABLE.
Capture d'écran 3Outil de détection défensive03_detection_tool_run.pngAffiche la vérification de signature en deux phases et l'audit loopback signalant VULNERABLE.
Capture d'écran 4Vérification de la remédiation04_remediation_verified.pngProuve l'échec du relais (HTTP 502 / Host Unreachable) sous défense réseau segmentée.
Capture d'écran 5Configuration de l'interface web05_web_ui_ssrf.png(Bonus) Capture navigateur des paramètres de l'interface Request-Baskets configurés avec Proxy Response.

Les procédures détaillées, les commandes et les transcriptions de console pour chaque capture d'écran sont documentées dans evidence/README.md.

Exécuteur de capture interactif

Pour capturer toutes les captures d'écran du terminal séquentiellement sans tracas de configuration manuelle, exécutez :

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

Compilation du PDF du blog technique

Compiler le rapport technique académique en PDF :

root@kitploit:~
python3 docs/generate_blog_pdf.py

Sortie générée : docs/CVE-2023-27163-Technical-Blog.pdf


Structure du projet

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

Références et crédits

Cette recherche et ce développement de laboratoire s'appuient sur des normes de sécurité ouvertes, des avis de fournisseurs et des bases de données de vulnérabilités :

  1. NIST National Vulnerability Database (NVD) :
    CVE-2023-27163 Detail — Score de 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. Dépôt du projet amont et source :
    darklynx/request-baskets (GitHub) — Service web Request Baskets.
  4. OWASP Foundation :
    Server-Side Request Forgery Prevention Cheat Sheet.

Avertissement

Ce laboratoire est destiné à des fins éducatives et de recherche en sécurité autorisée uniquement. N'utilisez pas ces outils contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas l'autorisation explicite de tester.

Télécharger l’outil