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-22515 — Procédure pas à pas d'exploitation de la vulnérabilité critique de contrôle d'accès défaillant CVE-2023-22515 dans Atlassian Confluence Server et Data Center, permettant la création à distance de comptes administrateur. | Kitploit
Outils/GitHubGitHub/tranphuc2005/cve-2023-22515
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionApprentissage et Éducation
GitHubtranphuc2005/cve-2023-22515

CVE-2023-22515

Procédure pas à pas d'exploitation de la vulnérabilité critique de contrôle d'accès défaillant CVE-2023-22515 dans Atlassian Confluence Server et Data Center, permettant la création à distance de comptes administrateur.

Voir le dépôt
il y a 1 anPas 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-22515

Informations principales sur CVE-2023-22515

  • Produit affecté : Atlassian Confluence Data Center & Confluence Server.

  • Date de publication : 04/10/2023.

  • Niveau : Critique (CVSS ~ 10.0).

  • Type de vulnérabilité : Contrôle d'accès cassé / Autorisation inappropriée → permet à un attaquant de créer un compte administrateur à distance.

  • L'erreur se situe dans le mécanisme de configuration (setup) de Confluence.

  • Impact : Confluence Data Center & Server 8.0.0 → 8.5.1.

Mise en œuvre pour trouver l'erreur

  • Premièrement, lors de l'installation de Confluence, il y a une étape de configuration pour faire fonctionner le serveur, par exemple la connexion à la BASE DE DONNÉES, la création d'utilisateurs, etc. Ces opérations sont effectuées via le navigateur WEB et les chemins d'URL /setup/. La dernière étape de la configuration sera /setup/setupadministrator.action.
  • Une fois terminée, ces paramètres ne sont plus appelés. Si nous essayons de les appeler, un message d'erreur s'affiche.

1

  • Cela provient de l'un des intercepteurs, à savoir du fichier .

SetupCheckInterceptor
struts.xml
  • struts.xml est le fichier de configuration central pour Struts.

  • Il définit comment Confluence associe URL → classe Action → modèle de vue.

  • Il déclare également les intercepteurs (classes qui interceptent le traitement de la requête avant/après l'exécution de l'action).

1

Dans SetupCheckInterceptor, il appelle BootstrapUtils.getBootstrapManager().isSetupComplete()

root@kitploit:~
public String intercept(ActionInvocation actionInvocation) throws Exception {
    if (BootstrapUtils.getBootstrapManager().isSetupComplete() && ContainerManager.isContainerSetup())
        return "alreadysetup"; 
    return actionInvocation.invoke();
}

Explication

  • BootstrapUtils.getBootstrapManager().isSetupComplete()
    → Vérifie si Confluence a terminé le processus de configuration (via l'assistant, saisie de licence, création de l'utilisateur admin).

  • ContainerManager.isContainerSetup()
    → Vérifie si le conteneur Spring IoC a été entièrement initialisé.

  • Si les deux conditions sont vraies :
    → Cela signifie que le système est entièrement configuré → l'intercepteur renvoie immédiatement "alreadysetup".
    → L'action n'est pas exécutée (il s'agit généralement des actions de configuration telles que SetupDatabaseAction, SetupLicenseAction, …).

  • Si la configuration n'est pas terminée :
    → Appelle actionInvocation.invoke() → c'est-à-dire qu'il continue l'exécution de l'action demandée par l'utilisateur.

getBootstrapManager() → renvoie généralement DefaultAtlassianBootstrapManager, qui gère l'ensemble des informations de configuration essentielles pendant le processus de configuration.

  • DefaultAtlassianBootstrapManager.isSetupComplete() : nous pouvons voir que la méthode de configuration de l'application isSetupComplete est appelée pour vérifier si la configuration est terminée ou non.

1

=> Si nous faisons en sorte que isSetupComplete = False, alors SetupCheckInterceptor ne renverra pas "alreadysetup" et /setup/setupadministrator.action deviendra accessible.

Ci-dessous, nous avons un ServerInfoAction

  • ServerInfoAction = Action publique dans Confluence → permet à tout utilisateur de l'appeler sans connexion, sans jeton CSRF. Lorsqu'il s'exécute, il renvoie simplement "success" → correspond à un modèle qui affiche les informations du serveur.

1

  • Elle hérite de ConfluenceActionSupport.
  • Dans ConfluenceActionSupport, nous voyons que getBootstrapStatusProvider renvoie BootstrapStatusProviderImpl, l'implémentation que nous recherchons.

1

  • Dans BootstrapStatusProviderImpl, il y a getApplicationConfig qui renvoie la configuration de l'application.

1

  • Enfin, à l'intérieur de ApplicationConfig, on peut voir qu'elle implémente la vérification setSetupComplete.

1

  • En combinant les parties ci-dessus, nous pouvons déduire une chaîne de méthodes pour définir setSetupComplete = false :
root@kitploit:~
getBootstrapStatusProvider(). getApplicationConfig (). setSetupComplete ( false );
  • XWorks2 nous permet d'exécuter cette chaîne de getters/setters ; nous pouvons construire un paramètre HTTP pour implémenter cette séquence d'appels de méthode en utilisant la notation requise par XWorks2 :
root@kitploit:~
bootstrapStatusProvider.applicationConfig.setupComplete=false
  • Nous allons exploiter /server-info.action qui est une URL dans Confluence, traitée par ServerInfoAction car c'est un endpoint public ne nécessitant pas de connexion.
root@kitploit:~
/server-info.action?bootstrapStatusProvider.applicationConfig.setupComplete=false

1

Vérifions le débogage :

  • setupComplete (paramètre passé à la méthode)
    → false
    Cela signifie que la méthode est appelée avec le paramètre false.

  • this.setupComplete (variable d'instance de l'objet ApplicationConfig)
    → true (avant l'affectation).

  • Lorsque la commande s'exécute → this.setupComplete devient false.

1

  • Après avoir terminé l'étape ci-dessus, essayons d'accéder à nouveau à l'endpoint /setup/setupadministrator.action ; cela réussit.

1

  • Après avoir créé l'administrateur, connectez-vous et vérifiez les droits.

1

Télécharger l’outil