XPath インジェクション
XPath インジェクション とは何ですか?
XPath インジェクション信頼できない入力により XML 文書に対する XPath クエリが改変され、データ窃取や認証バイパスにつながるインジェクション脆弱性。
XPath インジェクションは、アプリケーションが XML 文書に対する XPath クエリをユーザ入力の文字列連結で組み立てた際に発生し、原理は古典的な SQL インジェクションに似ています。攻撃者はクォート、' or '1'='1 のようなブール式、コメントなどを用いて想定された式から脱出し、任意のノードを取得したり、XML をユーザストアとする認証フォームを回避したり、ブール/時間ベースの盲目的なデータ窃取を行ったりします。レガシーな SOAP サービス、設定バックエンド、XML に資格情報を保存するアプリで多く見られます。対策にはパラメータ化された XPath API、厳格なホワイトリスト検証、より安全なデータストアへの移行があります。
● 例
- 01
ログインクエリ //user[name/text()='admin' or '1'='1' and password/text()='x'] による認証回避。
- 02
substring(//secret,1,1)='a' のような条件で盲目的に XPath を抽出する手法。
● よくある質問
XPath インジェクション とは何ですか?
信頼できない入力により XML 文書に対する XPath クエリが改変され、データ窃取や認証バイパスにつながるインジェクション脆弱性。 サイバーセキュリティの 攻撃と脅威 カテゴリに属します。
XPath インジェクション とはどういう意味ですか?
信頼できない入力により XML 文書に対する XPath クエリが改変され、データ窃取や認証バイパスにつながるインジェクション脆弱性。
XPath インジェクション からどのように防御しますか?
XPath インジェクション に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。
XPath インジェクション の別名は何ですか?
一般的な別名: XPath クエリインジェクション。