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-2022-31692 — Un projet démontrant une application vulnérable au contournement d'autorisation Spring Security CVE-2022-31692 | Kitploit
Outils/GitHubGitHub/blipzip/cve-2022-31692
Authentification et AutorisationAnalyse des VulnérabilitésExploitation d'Applications WebTests d'IntrusionApprentissage et Éducation
GitHubblipzip/cve-2022-31692

cve-2022-31692

Un projet démontrant une application vulnérable au contournement d'autorisation Spring Security CVE-2022-31692

Voir le dépôt
35614il y a 3 ansVérifié par Kitploit

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

Démo CVE-2022-31692

Aperçu

Une simple application Spring Boot démontrant une configuration vulnérable à CVE-2022-31692.

Cette vulnérabilité peut attirer l'attention en raison de sa sévérité - elle a un score de base CVSS 3.x de 9,8 car elle permet de contourner l'authentification. Le but de ce projet est de démontrer les conditions décrites dans l'avis, qui conduisent à l'applicabilité de la vulnérabilité.

  • L'application s'attend à ce que Spring Security applique la sécurité aux types de répartiteurs forward et include.
  • L'application utilise le AuthorizationFilter soit manuellement, soit via la méthode authorizeHttpRequests().
  • L'application configure le FilterChainProxy pour s'appliquer aux requêtes forward et/ou include (par ex. spring.security.filter.dispatcher-types = request, error, async, forward, include).
  • L'application peut transférer (forward) ou inclure (include) la requête vers un point de terminaison sécurisé à privilèges plus élevés.
  • L'application configure Spring Security pour s'appliquer à tous les types de répartiteurs via authorizeHttpRequests().shouldFilterAllDispatcherTypes(true)

Pour référence, je suis presque sûr que ce commit est celui qui corrige la vulnérabilité.

Démonstration

L'application a trois URL :

  1. / La page d'accueil
  2. /admin Une page d'administration, qui nécessite que l'utilisateur fournisse une authentification Basic (identifiants "user"/"pass") et soit assigné au rôle ROLE_ADMIN
  3. /forward Un forward côté serveur vers la page d'administration

Les contrôles d'accès sont spécifiés via authorizeHttpRequests() dans la classe SecurityConfig.

root@kitploit:~
.authorizeHttpRequests((authz) -> authz
	.antMatchers("/").permitAll()
	.antMatchers("/forward").permitAll()
	.antMatchers("/admin").hasAuthority("ROLE_ADMIN")
	.shouldFilterAllDispatcherTypes(true)
)

Comportements attendus

  1. L'utilisateur accède à / et n'est pas authentifié (grâce à permitAll())

  2. L'utilisateur accède à /admin. Il ne fournit pas d'authentification, et la requête est rejetée (401 Non autorisé).

  3. L'utilisateur accède à /admin. Il fournit une authentification valide, mais la requête est toujours rejetée (403 Interdit) car il n'a pas le rôle requis .hasAuthority("ROLE_ADMIN").

  4. L'utilisateur accède à /forward. Sa requête passe par la chaîne de filtres de sécurité pour GET /forward, qui est acceptée (grâce à permitAll()). Le contrôleur traite la requête et renvoie forward:/admin au répartiteur. Comme indiqué par les paramètres spring.security.filter.dispatcher-types et .shouldFilterAllDispatcherTypes(true), il s'agit d'un type FORWARD, donc il devrait être repassé dans la chaîne de filtres. Ce second passage dans le filtre entraîne le rejet de la requête (encore une fois, grâce à hasAuthority("ROLE_ADMIN")).

Comportement réel

L'utilisateur accède à /forward, la requête est passée une fois dans la chaîne de filtres et est acceptée. Le forward est traité, mais au lieu d'être repassé dans la chaîne, il est simplement accepté, et la page d'administration est renvoyée.

Télécharger l’outil