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
spring4shell-local-verification-lab — Projet de vérification des conditions d'impact local, correctif par mise à jour de version et retest pour Spring Framework CVE-2022-22965 | Kitploit
Outils/GitHubGitHub/meng-security/spring4shell-local-verification-lab
Analyse des VulnérabilitésAnalyse de CodeExploitationSécurité WebApprentissage et ÉducationLabs et Pratique
GitHubmeng-security/spring4shell-local-verification-lab

spring4shell-local-verification-lab

Projet de vérification des conditions d'impact local, correctif par mise à jour de version et retest pour Spring Framework CVE-2022-22965

Voir le dépôt
19il y a 3 moisPas 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

Projet de vérification, correction et re-test des conditions d'impact locales de Spring4Shell

Présentation du projet

Ce projet permet d'apprendre et de valider la vulnérabilité CVE-2022-22965 du framework Spring, également connue sous le nom de Spring4Shell, en ce qui concerne les conditions d'impact, les manifestations de risque, les méthodes de correction et le processus de re-test après correction.

Le projet a été réalisé dans un environnement local autorisé et mis en place personnellement. L'accent n'est pas mis sur l'attaque de cibles réelles, mais sur la construction d'environnements de test Spring MVC avant et après correction, la vérification point par point des conditions d'impact liées à la vulnérabilité, et l'observation sécurisée et en lecture seule des différences dans les chemins de propriétés internes du binding de données Spring avant et après la mise à niveau de version.

Ce projet a réalisé les étapes suivantes :

  • Préparation de l'environnement JDK, Maven et Apache Tomcat
  • Construction du projet WAR Spring MVC
  • Validation de base des fonctionnalités normales
  • Confirmation des conditions d'impact de la vulnérabilité
  • Diagnostic en lecture seule des chemins de propriétés internes
  • Analyse des causes de la vulnérabilité
  • Mise à niveau de la version du framework Spring
  • Re-test de sécurité après correction
  • Re-test des fonctionnalités normales après correction
  • Rapport de test et organisation des preuves par captures d'écran

Déclaration de sécurité

Ce projet est destiné uniquement à un environnement local personnel ou à un environnement de test de sécurité explicitement autorisé.

Le projet n'effectue aucune analyse, détection ou exploitation de vulnérabilité sur des sites web publics, serveurs ou systèmes métier tiers, et ne contient aucune donnée utilisateur réelle ni donnée métier réelle.

Pendant le test, les opérations suivantes n'ont pas été effectuées :

  • Aucun WebShell n'a été écrit
  • Aucune commande système n'a été exécutée
  • Aucune configuration Tomcat n'a été modifiée
  • Aucun shell inverse n'a été établi
  • Aucun contrôle persistant n'a été mis en place
  • Aucun impact n'a été causé sur un système externe

Il est interdit d'utiliser les méthodes de test de ce projet sur une cible non autorisée.

Contexte de la vulnérabilité

CVE-2022-22965, communément appelée Spring4Shell, est une vulnérabilité d'exécution de code à distance liée au mécanisme de liaison de données (data binding) des paramètres de requête dans le framework Spring.

Spring MVC permet de lier automatiquement les paramètres de requête HTTP aux propriétés des objets Java. Par exemple, ce projet reçoit les paramètres de nom et d'email via :

@ModelAttribute("profile") UserProfile profile

Normalement, les paramètres de requête name et email sont liés à l'objet UserProfile en fonction du nom de la propriété.

Dans les versions affectées, les restrictions d'accès à certains chemins de propriétés internes ne sont pas assez strictes. Lorsque l'on utilise JDK 9 ou une version ultérieure et que des conditions spécifiques de conteneur Servlet, de mode de déploiement et de liaison de données sont remplies, les paramètres de requête externes peuvent suivre l'objet métier normal pour accéder à des objets internes liés à la classe Java, au module, au chargeur de classe ou au conteneur.

Dans un environnement exploitable particulier, un attaquant pourrait modifier la configuration du serveur ou écrire des fichiers sur le serveur, créant ainsi un risque d'exécution de code à distance.

Ce projet n'effectue pas d'exploitation de code à distance complète, mais utilise le chemin de propriété suivant pour un diagnostic de différence sécurisé et en lecture seule :

class.module.name

Objectifs du projet

  1. Comprendre le processus de base de la liaison de données des paramètres de requête Spring MVC.
  2. Construire un projet de test Spring MVC WAR local.
  3. Effectuer une validation de base des fonctionnalités métier normales.
  4. Confirmer les conditions d'impact telles que le framework Spring, JDK, Tomcat, le déploiement WAR et le point d'entrée de la liaison de données.
  5. Observer en lecture seule les performances d'accès aux chemins de propriétés internes.
  6. Analyser les principales causes de la vulnérabilité.
  7. Mettre à niveau le framework Spring vers une version corrigée.
  8. Effectuer un re-test après correction en utilisant la même méthode.
  9. Confirmer que la mise à niveau de version n'a pas affecté les fonctionnalités métier normales.
  10. Organiser le code source du projet, le rapport de test et les preuves par captures d'écran.

Environnement expérimental

Ce projet a été réalisé dans un environnement expérimental isolé sur VMware local.

  • Hôte : Windows 11
  • Machine cible : Machine virtuelle Windows 10
  • Logiciel de virtualisation : VMware Workstation
  • Environnement Java : Eclipse Temurin JDK 11.0.31
  • Outil de construction de projet : Apache Maven 3.9.16
  • Conteneur Servlet : Apache Tomcat 9.0.60
  • Version du framework Spring avant correction : 5.3.17
  • Version du framework Spring après correction : 5.3.18
  • Framework Web : Spring MVC
  • Mode de déploiement du projet : Déploiement traditionnel par fichier WAR
  • Adresse de test : 127.0.0.1

Données de test des fonctionnalités normales :

  • Nom : Alice
  • Email : [email protected]

Chemin de propriété pour le diagnostic de sécurité :

class.module.name

Structure du projet

spring4shell-local-verification-lab/

  • README.md : Présentation du projet, approche de test, résultats de validation et explications de correction
  • docs/ : Rapport de vérification des conditions d'impact locales de Spring4Shell, correction et re-test
  • images/ : Captures d'écran de l'environnement du projet, du processus de test et du re-test
  • vulnerable-demo/ : Projet avant correction utilisant Spring Framework 5.3.17
  • fixed-demo/ : Projet après correction utilisant Spring Framework 5.3.18
  • notes/ : Notes d'apprentissage et enregistrement du processus

Structure principale du code source :

  • config/ : Classes de configuration Spring MVC et classe d'initialisation de l'application
  • controller/ : Contrôleur de traitement de formulaire et de diagnostic de chemin de propriété
  • model/ : Classe UserProfile pour recevoir les paramètres de nom et d'email
  • WEB-INF/views/ : Pages JSP pour la page d'accueil, le résultat de soumission et le résultat de diagnostic

Description du projet de test

Ce projet a créé deux applications Spring MVC, l'une avant correction et l'autre après correction.

Projet avant correction

Répertoire du projet :

vulnerable-demo

Version utilisée :

Spring Framework 5.3.17

Fichier WAR généré :

spring4shell-vulnerable-demo.war

Adresse d'accès :

http://127.0.0.1:8080/spring4shell-vulnerable-demo/

Page de diagnostic :

http://127.0.0.1:8080/spring4shell-vulnerable-demo/binding-probe

Projet après correction

Répertoire du projet :

fixed-demo

Version utilisée :

Spring Framework 5.3.18

Fichier WAR généré :

spring4shell-fixed-demo.war

Adresse d'accès :

http://127.0.0.1:8080/spring4shell-fixed-demo/

Page de diagnostic :

http://127.0.0.1:8080/spring4shell-fixed-demo/binding-probe

Description des fonctionnalités normales

Le projet de test fournit un simple formulaire de profil utilisateur, comprenant :

  • Champ de saisie du nom
  • Champ de saisie de l'email
  • Bouton de soumission du profil

Le contrôleur reçoit les paramètres de requête via :

@ModelAttribute("profile") UserProfile profile

Lorsque l'utilisateur soumet le nom et l'email, Spring MVC lie automatiquement les paramètres name et email à l'objet UserProfile.

La page de résultat lit l'objet lié et affiche le nom et l'email soumis par l'utilisateur.

Télécharger l’outil