
Prueba de concepto sobre un XSS almacenado en SCM Manager 1.2 <= 1.60
Se ha descubierto una vulnerabilidad en la versión SCM Manager 1.2 <= 1.60 que permite a un atacante previamente autenticado con permisos de escritura ejecutar código javascript en campos específicos.
Esta prueba de concepto se realiza en un entorno local desplegando un SCM Manager 1.60 usando docker
1 - Git clone del repositorio
2 - Asegúrate de que estás dentro del repositorio
3 - pip3 install -r requirements.txt
4 - python3 CVE-2023-33829.py -h
Copia y pega este script bash en un archivo script.sh, otorga permisos de ejecución y ejecuta el archivo:
#!/bin/bash
mkdir /var/lib/scm
chown 1000:1000 /var/lib/scm
docker run -v /var/lib/scm:/var/lib/scm -p 8080:8080 sdorra/scm-manager
El script es creado por sdorra, aquí está el enlace oficial: https://bitbucket.org/sdorra/docker-scm-manager/src/master/
NOTA: Necesitas tener docker instalado previamente.
Una vez que hayas instalado SCM Manager 1.60, te pedirá un nombre de usuario y una contraseña:
Usuario : scmadmin Contraseña: scmadmin
Prueba de concepto:

2- Crea un nuevo repositorio de cualquier tipo, pero en el campo Description es donde se encuentra la vulnerabilidad, así que inyectemos el payload y se activará:

3- Crea un nuevo usuario y el campo vulnerable específico es Display Name, así que inyecta el payload presentado anteriormente:

4- Crea un nuevo grupo y el campo vulnerable específico es Description, así que inyectamos nuestro payload:

PAYLOAD UTILIZADO:
Las nuevas versiones de SCM Manager están corregidas.