Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
POC-CVE-2026-18963 — CVE-2026-18963에 대한 개념 증명(PoC) 익스플로잇으로, Keycloak의 비밀번호 찾기 흐름에서 적절한 검증 없이 비밀번호 재설정을 허용하는 인증 우회 취약점입니다. 비파괴적 증명 모드를 포함합니다. | Kitploit
도구/GitHubGitHub/t0w0t/poc-cve-2026-18963
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingAuthentication
GitHubt0w0t/poc-cve-2026-18963

POC-CVE-2026-18963

CVE-2026-18963에 대한 개념 증명(PoC) 익스플로잇으로, Keycloak의 비밀번호 찾기 흐름에서 적절한 검증 없이 비밀번호 재설정을 허용하는 인증 우회 취약점입니다. 비파괴적 증명 모드를 포함합니다.

저장소 보기
11일 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-18963 — Keycloak 비밀번호 찾기( Forgot-Password ) 흐름 인증 우회 PoC

CVE-2026-18963에 대한 Proof of Concept입니다. 이는 Keycloak의 "비밀번호 찾기" / 자격 증명 선택 흐름에서 발견된 결함으로, 공격자가 필요한 신원 확인(예: 유효한 OTP/2차 인증)을 제대로 완료하지 않고도 UPDATE_PASSWORD 단계에 도달하여 대상 계정의 비밀번호를 재설정할 수 있게 합니다.

이 스크립트는 (브라우저/Selenium 없이) 순수 HTTP만으로 흐름을 진행하며, 다음과 같은 방식으로 동작합니다:

  1. 영역(realm)의 로그인 페이지를 로드하고 "비밀번호 찾기" 링크를 찾습니다.
  2. 자격 증명 재설정 페이지를 열고 tryAnotherWay를 트리거합니다.
  3. 결과로 표시된 자격 증명 선택기에서 사용자 이름을 제출합니다.
  4. Keycloak UI가 인증 세션을 유지하기 위해 사용하는 startSessionPolling() 재시작 URL을 추출하고 재전송합니다.
  5. 초기 재설정 URL을 다시 재생하여 두 번째 자격 증명 선택기에 도달합니다.
  6. 사용자 이름을 다시 제출하여 흐름을 곧바로 UPDATE_PASSWORD로 진행시킵니다.
  7. 선택적으로 대상 계정의 새 비밀번호를 제출합니다.

⚠️ 면책 조항

이 도구는 승인된 보안 테스트 및 연구 목적으로만 제공됩니다(수행이 의뢰된 침투 테스트, CTF, 자체 실습 환경, 또는 조율된 취약점 공개). 소유하고 있지 않거나 명시적인 서면 승인 없이 테스트할 권한이 없는 시스템에 대해 이 도구를 실행하는 것은 불법입니다. 작성자와 기여자는 이 도구의 오용 또는 이로 인한 손해에 대해 책임을 지지 않습니다.

문제를 입증하는 데 충분한 경우, --stop-at-update-password를 사용하여 비파괴적 증명(새 비밀번호를 제출하지 않고 에 도달)을 생성하세요.

UPDATE_PASSWORD

요구 사항

  • Python 3.8+
  • requests
  • beautifulsoup4

설치

root@kitploit:~
git clone <this-repo-url>
cd POC
python -m venv .venv
source .venv/bin/activate   # on Windows: .venv\Scripts\activate
pip install -r requirements.txt

사용법

root@kitploit:~
python poc_cve_2026_18963_terminal.py \
    --base-url http://localhost:8080 \
    --realm master \
    --client-id account \
    --username admin \
    --new-password "NewPassword123!"

옵션

플래그기본값설명
--base-urlhttp://localhost:8080대상 Keycloak 인스턴스의 기본 URL
--realmmaster대상 영역(realm)
--client-idaccount로그인 흐름을 시작하는 데 사용되는 OIDC 클라이언트 ID
--usernameadmin대상 사용자 이름
--new-password(required)대상 계정에 설정할 비밀번호
--stop-at-update-passwordoffUPDATE_PASSWORD에 도달하면 새 비밀번호를 제출하지 않고 중지합니다(비공격형 증명)
--timeout10.0HTTP 요청 시간 제한(초)
--output-dirdebug_http디버깅을 위해 각 중간 HTML 응답이 저장되는 디렉터리
--insecureoffTLS 인증서 검증 비활성화

비파괴적 증명

root@kitploit:~
python poc_cve_2026_18963_terminal.py \
    --base-url https://target.example.com \
    --realm myrealm \
    --username victim \
    --new-password unused \
    --stop-at-update-password

출력

모든 중간 HTTP 응답은 --output-dir(기본값 debug_http)의 01_login.html, 02_reset.html, ... 파일로 저장되어 오프라인에서 검토할 수 있습니다. 스크립트는 성공 시 0, 실패 시 1로 종료되며 진행 상황 및 진단 메시지를 stdout으로 출력합니다.

저자

Aurélien LOIE

도구 다운로드