ブラインド XPath インジェクション (差分分析)

high Web App Scanning プラグイン ID 113310

概要

Blind XPath インジェクション (差分分析)

説明

XML パス言語 (XPath) クエリは、XML ドキュメントからノードを選択するために Web アプリケーションで使用されます。選択すると、これらのノードの値をアプリケーションで使用できるようになります。

XML ドキュメントの使用の簡単な例は、ユーザー情報の保存です。認証プロセスの一部として、アプリケーションは XPath クエリを実行してログイン認証情報を確認し、そのユーザーの情報を取得して次のリクエストで使用します。

XPath インジェクションは、信頼できないデータが XPath クエリの構築に使用される場合に発生します。

サイバー犯罪者がこのインジェクションの脆弱性を悪用して認証をバイパスしたり、他のユーザーの情報を照会したりする可能性があります。権限のあるユーザーの認証情報が XML ドキュメントに含まれている場合には、サイバー犯罪者は権限を昇格することが可能です。

スキャナーは特別な XPath クエリ文字をページに挿入し、サーバーからの応答に基づいて、そのページが XPath インジェクションに対して脆弱であると判断しました。

スキャナーが特定の XPath クエリを注入できたため、このインジェクションが検出されました。脆弱な場合、各インジェクションの応答が別のものになります。これは、ブラインド XPath インジェクションの脆弱性として知られています。

ソリューション

XPath インジェクションから保護するための推奨される方法は、パラメーター化された (準備されたとも呼ばれる) XPath クエリを利用することです。XML ドキュメントにクエリを行うこの方法を利用する場合、クライアントから提供された値は、XPath クエリの一部としてではなく、文字列として処理されます。
パラメーター化されたクエリの代替手段として、プリコンパイルされた XPath クエリを使用します。プリコンパイルされた XPath クエリは動的に生成されないため、ユーザー指定の入力を XPath として処理することはありません。

参考資料

http://projects.webappsec.org/w/page/13247005/XPath%20Injection

https://www.owasp.org/index.php/XPATH_Injection

プラグインの詳細

深刻度: High

ID: 113310

タイプ: remote

ファミリー: Injection

公開日: 2022/8/8

更新日: 2024/2/21

スキャン テンプレート: api, pci, scan

リスク情報

VPR

リスクファクター: Medium

スコア: 4.7

CVSS v2

リスクファクター: High

Base Score: 9

ベクトル: CVSS2#AV:N/AC:L/Au:N/C:C/I:P/A:P

CVSS スコアのソース: Tenable

CVSS v3

リスクファクター: High

Base Score: 8.6

ベクトル: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:L

CVSS スコアのソース: Tenable

参照情報