SCW アイコン
ヒーロー背景(区切りなし)
ブログ

程序员征服安全:分享与学习系列-XQuery 注入

Jaap Karan Singh
2019年2月28日 掲載
最終更新日: 2026年3月10日

XQuery 注入攻击有时被认为是更普遍的攻击的弟弟 SQL 注入攻击。它们有相似的根本原因,攻击者利用的命令触发它们也非常接近。只是 XQuery 注入攻击只能在 XPath 查询 XML 数据期间发生。因此,它们有时被称为 XPath 注入或仅称为 XPath 攻击,因为这是所使用的交付方法。

绝大多数网站使用XML数据库来执行关键功能,例如保存用户登录凭证、客户信息、个人身份信息以及机密或敏感数据,这使得XQuery攻击的攻击足迹相当大。

在本集中,我们将学习:

  • 攻击者如何使用 XQuery 注入
  • 为什么 XQuery 注入很危险
  • 可以修复此漏洞的技术。

攻击者如何触发 XQuery 注入?

与大多数计算机语言一样,XPath 的代码是为简单而设计的。实际上,XPath 是一种标准语言,无论哪个应用程序使用它们,所有符号和语法语句都保持不变。这意味着用于操作 XPath 查询的命令是众所周知的,甚至可以自动执行。

XPath 查询的核心是一个简单的语句,它告诉 XML 数据库要查找哪些信息。在最简单的示例之一中,它用于检查用户记录是否存在,然后检索他们的登录凭证。问题在于,由于XPath查询包含用户输入,因此黑客可以操纵查询以返回应受保护的信息。

例如,当试图绕过登录安全性时,攻击者可以在其 XPath 查询的末尾添加变量,从而绕过整个过程。一个例子可能如下所示:

//员工 [用户名/文本 () =任何人或 1=1 或 a=a 还有密码/文本 () =不重要]

在这里,由于 1=1 或 a=a 语句,用户名字段可以匹配任何用户。密码字段甚至无关紧要,因为只有查询的第一部分需要为真。

为什么 XQuery 注入很危险?

XQuery 注入攻击如此危险的主要原因是因为它们允许攻击者绕过登录和账户安全。而且它们允许使用不因应用程序而异的标准语言以自动方式完成此操作。攻击者可以自动扫描网站和应用程序中是否存在此漏洞,并在发现漏洞后立即采取行动。如果你的应用程序容易受到攻击,那么攻击者就会入侵它。除了危害账户安全外,XQuery 攻击还可用于数据泄露。例如,攻击者可以将所有记录传出 XML 数据库。

消除 XQuery 注入攻击

与类似的漏洞一样,一个关键的防御措施就是不信任用户的输入。每当用户能够输入信息时,无论他们是否进行数据库查询,都应仔细检查该过程。这与保护实体建筑物的门窗没有什么不同,因为这些是人们进入的主要方式。

对于 XQuery 注入保护,这是通过过滤来消毒用户输入或使用用户输入的白名单输入验证来完成的。您也可以使用参数化的 XPath 接口,类似于 SQL 查询的预处理语句。

最后,请务必对所有应用程序应用最低权限。这可能意味着创建一个具有只读权限的用户来执行所有应用程序查询。

通过使用这些技术,可以停止所有针对您的网站或应用程序的 XQuery 注入尝试。

有关 XQuery 注入的更多信息

要进一步阅读,你可以看看OWASP对XQuery注入的看法。你还可以使用以下方法来测试你新获得的防御知识 免费演示 Secure Code Warrior 平台,该平台培训网络安全团队成为终极网络战士。要了解有关克服此漏洞以及其他恶棍威胁的更多信息,请访问 安全码 战士 博客。

リソースを確認する
リソースを確認する

绝大多数网站使用XML数据库来执行关键功能,例如保存用户登录凭证、客户信息、个人身份信息以及机密或敏感数据,这使得XQuery攻击的攻击足迹相当大。

もっと知りたいですか?

Jaap Karan Singhは、Secure Coding Evangelistであり、Chief Singhであり、Secure Code Warrior の共同設立者です。

もっと詳しく

Secure Code Warriorは、ソフトウェア開発ライフサイクル全体を通じてコードを保護し、サイバーセキュリティを最優先とする文化を醸成するお手伝いをします。AppSecマネージャー、開発者、最高情報セキュリティ責任者(CISO)、あるいはセキュリティに関わるあらゆる方々の組織において、不安全なコードに関連するリスクの低減を支援します。

デモを予約する
共有する:
リンクトインのブランドソーシャルx ロゴ
作者
Jaap Karan Singh
2019年2月28日発行

Jaap Karan Singhは、Secure Coding Evangelistであり、Chief Singhであり、Secure Code Warrior の共同設立者です。

共有する:
リンクトインのブランドソーシャルx ロゴ

XQuery 注入攻击有时被认为是更普遍的攻击的弟弟 SQL 注入攻击。它们有相似的根本原因,攻击者利用的命令触发它们也非常接近。只是 XQuery 注入攻击只能在 XPath 查询 XML 数据期间发生。因此,它们有时被称为 XPath 注入或仅称为 XPath 攻击,因为这是所使用的交付方法。

绝大多数网站使用XML数据库来执行关键功能,例如保存用户登录凭证、客户信息、个人身份信息以及机密或敏感数据,这使得XQuery攻击的攻击足迹相当大。

在本集中,我们将学习:

  • 攻击者如何使用 XQuery 注入
  • 为什么 XQuery 注入很危险
  • 可以修复此漏洞的技术。

攻击者如何触发 XQuery 注入?

与大多数计算机语言一样,XPath 的代码是为简单而设计的。实际上,XPath 是一种标准语言,无论哪个应用程序使用它们,所有符号和语法语句都保持不变。这意味着用于操作 XPath 查询的命令是众所周知的,甚至可以自动执行。

XPath 查询的核心是一个简单的语句,它告诉 XML 数据库要查找哪些信息。在最简单的示例之一中,它用于检查用户记录是否存在,然后检索他们的登录凭证。问题在于,由于XPath查询包含用户输入,因此黑客可以操纵查询以返回应受保护的信息。

例如,当试图绕过登录安全性时,攻击者可以在其 XPath 查询的末尾添加变量,从而绕过整个过程。一个例子可能如下所示:

//员工 [用户名/文本 () =任何人或 1=1 或 a=a 还有密码/文本 () =不重要]

在这里,由于 1=1 或 a=a 语句,用户名字段可以匹配任何用户。密码字段甚至无关紧要,因为只有查询的第一部分需要为真。

为什么 XQuery 注入很危险?

XQuery 注入攻击如此危险的主要原因是因为它们允许攻击者绕过登录和账户安全。而且它们允许使用不因应用程序而异的标准语言以自动方式完成此操作。攻击者可以自动扫描网站和应用程序中是否存在此漏洞,并在发现漏洞后立即采取行动。如果你的应用程序容易受到攻击,那么攻击者就会入侵它。除了危害账户安全外,XQuery 攻击还可用于数据泄露。例如,攻击者可以将所有记录传出 XML 数据库。

消除 XQuery 注入攻击

与类似的漏洞一样,一个关键的防御措施就是不信任用户的输入。每当用户能够输入信息时,无论他们是否进行数据库查询,都应仔细检查该过程。这与保护实体建筑物的门窗没有什么不同,因为这些是人们进入的主要方式。

对于 XQuery 注入保护,这是通过过滤来消毒用户输入或使用用户输入的白名单输入验证来完成的。您也可以使用参数化的 XPath 接口,类似于 SQL 查询的预处理语句。

最后,请务必对所有应用程序应用最低权限。这可能意味着创建一个具有只读权限的用户来执行所有应用程序查询。

通过使用这些技术,可以停止所有针对您的网站或应用程序的 XQuery 注入尝试。

有关 XQuery 注入的更多信息

要进一步阅读,你可以看看OWASP对XQuery注入的看法。你还可以使用以下方法来测试你新获得的防御知识 免费演示 Secure Code Warrior 平台,该平台培训网络安全团队成为终极网络战士。要了解有关克服此漏洞以及其他恶棍威胁的更多信息,请访问 安全码 战士 博客。

リソースを確認する
リソースを確認する

以下のフォームに記入してレポートをダウンロードしてください

当社は、当社の製品および/または関連するセキュリティコードに関する情報を送信するため、お客様の許可を得たいと考えております。お客様の個人情報は常に慎重に取り扱い、マーケティング目的で他社に販売することは決してありません。

提出
SCW成功アイコン
SCWエラーアイコン
フォームを送信するには、「分析」Cookieを有効にしてください。完了後、いつでも再度無効にできます。

XQuery 注入攻击有时被认为是更普遍的攻击的弟弟 SQL 注入攻击。它们有相似的根本原因,攻击者利用的命令触发它们也非常接近。只是 XQuery 注入攻击只能在 XPath 查询 XML 数据期间发生。因此,它们有时被称为 XPath 注入或仅称为 XPath 攻击,因为这是所使用的交付方法。

绝大多数网站使用XML数据库来执行关键功能,例如保存用户登录凭证、客户信息、个人身份信息以及机密或敏感数据,这使得XQuery攻击的攻击足迹相当大。

在本集中,我们将学习:

  • 攻击者如何使用 XQuery 注入
  • 为什么 XQuery 注入很危险
  • 可以修复此漏洞的技术。

攻击者如何触发 XQuery 注入?

与大多数计算机语言一样,XPath 的代码是为简单而设计的。实际上,XPath 是一种标准语言,无论哪个应用程序使用它们,所有符号和语法语句都保持不变。这意味着用于操作 XPath 查询的命令是众所周知的,甚至可以自动执行。

XPath 查询的核心是一个简单的语句,它告诉 XML 数据库要查找哪些信息。在最简单的示例之一中,它用于检查用户记录是否存在,然后检索他们的登录凭证。问题在于,由于XPath查询包含用户输入,因此黑客可以操纵查询以返回应受保护的信息。

例如,当试图绕过登录安全性时,攻击者可以在其 XPath 查询的末尾添加变量,从而绕过整个过程。一个例子可能如下所示:

//员工 [用户名/文本 () =任何人或 1=1 或 a=a 还有密码/文本 () =不重要]

在这里,由于 1=1 或 a=a 语句,用户名字段可以匹配任何用户。密码字段甚至无关紧要,因为只有查询的第一部分需要为真。

为什么 XQuery 注入很危险?

XQuery 注入攻击如此危险的主要原因是因为它们允许攻击者绕过登录和账户安全。而且它们允许使用不因应用程序而异的标准语言以自动方式完成此操作。攻击者可以自动扫描网站和应用程序中是否存在此漏洞,并在发现漏洞后立即采取行动。如果你的应用程序容易受到攻击,那么攻击者就会入侵它。除了危害账户安全外,XQuery 攻击还可用于数据泄露。例如,攻击者可以将所有记录传出 XML 数据库。

消除 XQuery 注入攻击

与类似的漏洞一样,一个关键的防御措施就是不信任用户的输入。每当用户能够输入信息时,无论他们是否进行数据库查询,都应仔细检查该过程。这与保护实体建筑物的门窗没有什么不同,因为这些是人们进入的主要方式。

对于 XQuery 注入保护,这是通过过滤来消毒用户输入或使用用户输入的白名单输入验证来完成的。您也可以使用参数化的 XPath 接口,类似于 SQL 查询的预处理语句。

最后,请务必对所有应用程序应用最低权限。这可能意味着创建一个具有只读权限的用户来执行所有应用程序查询。

通过使用这些技术,可以停止所有针对您的网站或应用程序的 XQuery 注入尝试。

有关 XQuery 注入的更多信息

要进一步阅读,你可以看看OWASP对XQuery注入的看法。你还可以使用以下方法来测试你新获得的防御知识 免费演示 Secure Code Warrior 平台,该平台培训网络安全团队成为终极网络战士。要了解有关克服此漏洞以及其他恶棍威胁的更多信息,请访问 安全码 战士 博客。

ウェビナーを視聴する
始めましょう
もっと詳しく

以下のリンクをクリックして、このリソースのPDFをダウンロードしてください。

Secure Code Warriorは、ソフトウェア開発ライフサイクル全体を通じてコードを保護し、サイバーセキュリティを最優先とする文化を醸成するお手伝いをします。AppSecマネージャー、開発者、最高情報セキュリティ責任者(CISO)、あるいはセキュリティに関わるあらゆる方々の組織において、不安全なコードに関連するリスクの低減を支援します。

レポートを確認するデモを予約する
PDFをダウンロード
リソースを確認する
共有する:
リンクトインのブランドソーシャルx ロゴ
もっと知りたいですか?

共有する:
リンクトインのブランドソーシャルx ロゴ
作者
Jaap Karan Singh
2019年2月28日発行

Jaap Karan Singhは、Secure Coding Evangelistであり、Chief Singhであり、Secure Code Warrior の共同設立者です。

共有する:
リンクトインのブランドソーシャルx ロゴ

XQuery 注入攻击有时被认为是更普遍的攻击的弟弟 SQL 注入攻击。它们有相似的根本原因,攻击者利用的命令触发它们也非常接近。只是 XQuery 注入攻击只能在 XPath 查询 XML 数据期间发生。因此,它们有时被称为 XPath 注入或仅称为 XPath 攻击,因为这是所使用的交付方法。

绝大多数网站使用XML数据库来执行关键功能,例如保存用户登录凭证、客户信息、个人身份信息以及机密或敏感数据,这使得XQuery攻击的攻击足迹相当大。

在本集中,我们将学习:

  • 攻击者如何使用 XQuery 注入
  • 为什么 XQuery 注入很危险
  • 可以修复此漏洞的技术。

攻击者如何触发 XQuery 注入?

与大多数计算机语言一样,XPath 的代码是为简单而设计的。实际上,XPath 是一种标准语言,无论哪个应用程序使用它们,所有符号和语法语句都保持不变。这意味着用于操作 XPath 查询的命令是众所周知的,甚至可以自动执行。

XPath 查询的核心是一个简单的语句,它告诉 XML 数据库要查找哪些信息。在最简单的示例之一中,它用于检查用户记录是否存在,然后检索他们的登录凭证。问题在于,由于XPath查询包含用户输入,因此黑客可以操纵查询以返回应受保护的信息。

例如,当试图绕过登录安全性时,攻击者可以在其 XPath 查询的末尾添加变量,从而绕过整个过程。一个例子可能如下所示:

//员工 [用户名/文本 () =任何人或 1=1 或 a=a 还有密码/文本 () =不重要]

在这里,由于 1=1 或 a=a 语句,用户名字段可以匹配任何用户。密码字段甚至无关紧要,因为只有查询的第一部分需要为真。

为什么 XQuery 注入很危险?

XQuery 注入攻击如此危险的主要原因是因为它们允许攻击者绕过登录和账户安全。而且它们允许使用不因应用程序而异的标准语言以自动方式完成此操作。攻击者可以自动扫描网站和应用程序中是否存在此漏洞,并在发现漏洞后立即采取行动。如果你的应用程序容易受到攻击,那么攻击者就会入侵它。除了危害账户安全外,XQuery 攻击还可用于数据泄露。例如,攻击者可以将所有记录传出 XML 数据库。

消除 XQuery 注入攻击

与类似的漏洞一样,一个关键的防御措施就是不信任用户的输入。每当用户能够输入信息时,无论他们是否进行数据库查询,都应仔细检查该过程。这与保护实体建筑物的门窗没有什么不同,因为这些是人们进入的主要方式。

对于 XQuery 注入保护,这是通过过滤来消毒用户输入或使用用户输入的白名单输入验证来完成的。您也可以使用参数化的 XPath 接口,类似于 SQL 查询的预处理语句。

最后,请务必对所有应用程序应用最低权限。这可能意味着创建一个具有只读权限的用户来执行所有应用程序查询。

通过使用这些技术,可以停止所有针对您的网站或应用程序的 XQuery 注入尝试。

有关 XQuery 注入的更多信息

要进一步阅读,你可以看看OWASP对XQuery注入的看法。你还可以使用以下方法来测试你新获得的防御知识 免费演示 Secure Code Warrior 平台,该平台培训网络安全团队成为终极网络战士。要了解有关克服此漏洞以及其他恶棍威胁的更多信息,请访问 安全码 战士 博客。

目次

PDFをダウンロード
リソースを確認する
もっと知りたいですか?

Jaap Karan Singhは、Secure Coding Evangelistであり、Chief Singhであり、Secure Code Warrior の共同設立者です。

もっと詳しく

Secure Code Warriorは、ソフトウェア開発ライフサイクル全体を通じてコードを保護し、サイバーセキュリティを最優先とする文化を醸成するお手伝いをします。AppSecマネージャー、開発者、最高情報セキュリティ責任者(CISO)、あるいはセキュリティに関わるあらゆる方々の組織において、不安全なコードに関連するリスクの低減を支援します。

デモを予約するダウンロード
共有する:
リンクトインのブランドソーシャルx ロゴ
リソースセンター

入門に役立つリソース

さらに多くの投稿
リソースセンター

入門に役立つリソース

さらに多くの投稿