
Python-Exploit für CVE-2022-36804, der über manipulierte Archiv-Anfragen Remote-Befehlsausführung und Dateiübertragung auf verwundbaren Bitbucket Server/Data Center-Instanzen ermöglicht.
Dieses Repository enthält ein Python-Exploit-Skript für die Atlassian-Bitbucket-Server/Data-Center-Schwachstelle CVE-2022-36804. Das Problem ist eine Befehlsinjizierungsschwachstelle im Git-Archiv-Ablauf, bei der manipulierte prefix-Parameter vom Server interpretiert und als Shell-Befehle ausgeführt werden können.
CVE-2022-36804 ist eine Schwachstelle zur Remote-Befehlsausführung in Bitbucket Server/Data Center. Sie wird durch die unsichere Behandlung des prefix-Werts am Archiv-Endpunkt verursacht, wodurch vom Angreifer kontrollierte Daten über Git bis zu einem Shell-Aufruf gelangen können. Die Folge ist eine nicht authentifizierte oder authentifizierte Befehlsausführung, je nach Pfad und Bereitstellungsmodell.
Dieses Skript zielt auf den verwundbaren Archiv-Endpunkt ab und nutzt eine manipulierte Anfrage, um die Injizierung auszulösen.
Dieses PoC richtet sich an betroffene Bitbucket-Server/Data-Center-Builds, die von der Atlassian-Sicherheitswarnung für CVE-2022-36804 abgedeckt sind. In der Praxis umfasst der verwundbare Bereich ältere 7.x/8.x-Bitbucket-Server/Data-Center-Versionen vor den von Atlassian aufgeführten behobenen Versionen. Es ist nicht für gepatchte oder aktualisierte Builds gedacht.
Verwenden Sie dies nur gegen Systeme, die Ihnen gehören oder für die Sie ausdrücklich zur Prüfung autorisiert sind.
Das Skript sendet eine Anfrage an:
/rest/api/latest/projects/{project}/repos/{repo}/archive
mit einem speziell manipulierten prefix-Parameter, der wie folgt aussieht:
ax%00--exec=`<command>`%00--remote=origin
Der Trick besteht darin, den Nullbyte-/Git-Befehlspfad auszunutzen, sodass der Server letztendlich einen Shell-Befehl aus der Archiv-Anfrage ausführt. Das Skript verpackt den Befehl bei Bedarf in gzip + base64, damit die Ausgabe kompakt zurückgegeben und lokal dekodiert wird.
Das Skript unterstützt zwei Hauptmodi:
python cve-2022-36804_v5.py <url> <username> <password> -p <project> -r <repo> -c "whoami"
Optionen:
-c, --command: führt einen Befehl aus--no-encode: sendet den rohen Befehl ohne gzip+base64-Verpackung-p, --project: Bitbucket-Projektschlüssel-r, --repo: Bitbucket-Repository-Slugpython cve-2022-36804_v5.py <url> <username> <password> -p <project> -r <repo> -f /path/to/local.bin -o /tmp/remote.bin
Dies liest eine lokale Datei in Blöcken, kodiert jeden Block in base64 und verwendet den Exploit, um die Datei auf dem Server am Zielpfad zu rekonstruieren.
requests.Session mit Basic Auth.verify = False), um Tests gegen Endpoints mit selbstsignierten Zertifikaten zu vereinfachen.Dieses Tool ist ausschließlich für autorisierte Sicherheitsforschung und kontrollierte Tests bestimmt. Die Verwendung gegen Systeme, die Ihnen nicht gehören oder für die Sie keine Testberechtigung haben, ist illegal und unethisch.