
Preuve de concept à propos d'un XSS stocké dans SCM Manager 1.2 <= 1.60
Une vulnérabilité a été découverte dans les versions SCM Manager 1.2 <= 1.60 qui permet à un attaquant préalablement authentifié avec des permissions d'écriture d'exécuter du code JavaScript dans des champs spécifiques.
Cette preuve de concept a été réalisée dans un environnement local en déployant un SCM Manager 1.60 avec Docker.
1 - Git clone the repository
2 - Make sure that you are into the repository
3 - pip3 install -r requirements.txt
4 - python3 CVE-2023-33829.py -h
Copiez et collez ce script bash dans un fichier script.sh, ajoutez les permissions d'exécution et exécutez le fichier :
#!/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
Le script est créé par sdorra, voici le lien officiel : https://bitbucket.org/sdorra/docker-scm-manager/src/master/
NOTE : Vous devez avoir Docker installé au préalable.
Une fois que vous avez installé SCM Manager 1.60, il vous demandera un nom d'utilisateur et un mot de passe :
Nom d'utilisateur : scmadmin Mot de passe : scmadmin
Preuve de concept :

2- Créez un nouveau référentiel de n'importe quel type, mais le champ Description est le champ vulnérable, injectons donc le payload et il sera déclenché :

3- Créez un nouvel utilisateur et le champ vulnérable spécifique est Display Name, injectez donc le payload présenté précédemment :

4- Créez un nouveau groupe et le champ vulnérable spécifique est Description, injectez donc notre payload :

PAYLOAD UTILISÉ :
Les nouvelles versions de SCM Manager sont corrigées.