
Exploit en Python para CVE-2022-36804, que permite la ejecución remota de comandos y la transferencia de archivos en Bitbucket Server/Data Center vulnerables mediante solicitudes de archivo especialmente diseñadas.
Este repositorio contiene un script de explotación en Python para la vulnerabilidad CVE-2022-36804 de Atlassian Bitbucket Server/Data Center. El problema es una falla de inyección de comandos en el flujo de archivado de Git, donde los parámetros prefix manipulados pueden ser interpretados por el servidor y ejecutados como comandos de shell.
CVE-2022-36804 es una vulnerabilidad de ejecución remota de comandos en Bitbucket Server/Data Center. Fue causada por un manejo inseguro del valor prefix en el endpoint de archivado, lo que permite que datos controlados por un atacante lleguen a una invocación de shell a través de Git. La consecuencia es la ejecución de comandos sin autenticar o autenticados, dependiendo de la ruta y el modelo de despliegue.
Este script apunta al endpoint de archivado vulnerable y utiliza una solicitud manipulada para desencadenar la inyección.
Este PoC está pensado para compilaciones afectadas de Bitbucket Server/Data Center cubiertas por el aviso de Atlassian para CVE-2022-36804. En la práctica, el rango vulnerable incluye versiones antiguas 7.x/8.x de Bitbucket Server/Data Center anteriores a las versiones corregidas listadas por Atlassian. No está pensado para compilaciones parcheadas o actualizadas.
Utilícelo únicamente contra sistemas que usted posea o para los que tenga autorización explícita de prueba.
El script envía una solicitud a:
/rest/api/latest/projects/{project}/repos/{repo}/archive
con un parámetro prefix especialmente manipulado que tiene esta forma:
ax%00--exec=`<command>`%00--remote=origin
El truco consiste en explotar el byte nulo / la ruta de comandos de Git para que el servidor termine ejecutando un comando de shell a partir de la solicitud de archivado. El script envuelve el comando en gzip + base64 cuando es necesario para que la salida se devuelva de forma compacta y se decodifique localmente.
El script admite dos modos principales:
python cve-2022-36804_v5.py <url> <username> <password> -p <project> -r <repo> -c "whoami"
Opciones:
-c, --command: ejecuta un comando--no-encode: envía el comando sin envolverlo en gzip+base64-p, --project: clave del proyecto Bitbucket-r, --repo: slug del repositorio Bitbucketpython cve-2022-36804_v5.py <url> <username> <password> -p <project> -r <repo> -f /path/to/local.bin -o /tmp/remote.bin
Esto lee un archivo local en fragmentos, codifica cada fragmento en base64 y utiliza el exploit para reconstruirlo en el servidor en la ruta de destino.
requests.Session con autenticación básica.verify = False) para simplificar las pruebas contra endpoints con certificados autofirmados.Esta herramienta es únicamente para investigación de seguridad autorizada y pruebas controladas. Usarla contra sistemas que no posee o para los que no tiene permiso de pruebas es ilegal y poco ético.