
Proof-of-concept per CVE-2022-45782: token di reset della password di dotCMS prevedibili, con un token cracker e la catena di exploit completa.
Questa repository contiene un proof-of-concept per CVE-2022-45782, una vulnerabilità in dotCMS dove i token di reset password vengono generati usando il metodo non crittografico RandomStringUtils.randomAlphanumeric(). Poiché questo token è prevedibile, un attaccante può forzarlo o derivarlo e reimpostare la password di un account amministratore.
Questo PoC dimostra l'intera catena di sfruttamento:
Questa repo usa un sottomodulo Git contenente il cracker per la funzione vulnerabile di generazione dei token. È l'implementazione in C del cracker usato per derivare/indovinare i token di reset password generati da RandomStringUtils.randomAlphanumeric().
Clona con sottomodulo:
git clone https://github.com/alex91ar/randomstringutils.git
dotCMS deve inviare le email di reset affinché il PoC funzioni.
Modifica docker-compose.yml:
DOT_MAIL_SMTP_USER: "<smtp_email>"
DOT_MAIL_SMTP_PASSWORD: "<smtp_pass>"
(Se usi Gmail: abilita App Password e usa la password di 16 caratteri generata.)
docker compose up
Se fallisce (comune al primo avvio), esegui nuovamente.
Pagina di login: https://localhost:8443/dotAdmin/#/public/login
All'interno di dotCMS:
Questi due account verranno usati dal PoC.
randomstringutils è il brute-forcer/cracker per il token insicuro di dotCMS.
Compilalo usando:
cd randomstringutils
gcc -lpthread -O3 -o randomutils randomutils.c
Questo produce il binario veloce per il cracking dei token.
python3 poc.py
Se ha successo, lo script usa il token admin violato per reimpostare l'account amministratore.
Questa repository è solo per test di sicurezza educativi, accademici e autorizzati. NON usare questo exploit contro sistemi che non possiedi o per i quali non hai esplicita autorizzazione al test.