Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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é.

FluxContactConfidentialité© 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
22il y a 21 joursPas 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)

┌─────────────────────────────────────────────────────────┐
│                    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)

┌─────────────────────────┐        ┌─────────────────────────┐
│       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 :

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) :

docker compose up -d

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

docker compose ps

Sortie attendue :

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 :

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 :

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 :

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 :

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

Sortie attendue :

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

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/ :

Télécharger l’outil