SCW Icons
hero bg no divider
Blog

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

Jaap Karan Singh
Published Feb 28, 2019
Last updated on Mar 10, 2026

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 is a Secure Coding Evangelist, Chief Singh and co-founder of Secure Code Warrior.

learn more

Secure Code Warrior可以帮助您的组织在整个软件开发生命周期中保护代码,并营造一种将网络安全放在首位的文化。无论您是 AppSec 经理、开发人员、首席信息安全官还是任何与安全相关的人,我们都可以帮助您的组织降低与不安全代码相关的风险。

预订演示
分享到:
linkedin brandsSocialx logo
作者
Jaap Karan Singh
Published Feb 28, 2019

Jaap Karan Singh is a Secure Coding Evangelist, Chief Singh and co-founder of Secure Code Warrior.

分享到:
linkedin brandsSocialx logo

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 success icon
scw error icon
要提交表单,请启用 “分析” 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 平台,该平台培训网络安全团队成为终极网络战士。要了解有关克服此漏洞以及其他恶棍威胁的更多信息,请访问 安全码 战士 博客。

观看网络研讨会
开始吧
learn more

点击下面的链接并下载此资源的PDF。

Secure Code Warrior可以帮助您的组织在整个软件开发生命周期中保护代码,并营造一种将网络安全放在首位的文化。无论您是 AppSec 经理、开发人员、首席信息安全官还是任何与安全相关的人,我们都可以帮助您的组织降低与不安全代码相关的风险。

查看报告预订演示
查看资源
分享到:
linkedin brandsSocialx logo
对更多感兴趣?

分享到:
linkedin brandsSocialx logo
作者
Jaap Karan Singh
Published Feb 28, 2019

Jaap Karan Singh is a Secure Coding Evangelist, Chief Singh and co-founder of Secure Code Warrior.

分享到:
linkedin brandsSocialx logo

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 is a Secure Coding Evangelist, Chief Singh and co-founder of Secure Code Warrior.

learn more

Secure Code Warrior可以帮助您的组织在整个软件开发生命周期中保护代码,并营造一种将网络安全放在首位的文化。无论您是 AppSec 经理、开发人员、首席信息安全官还是任何与安全相关的人,我们都可以帮助您的组织降低与不安全代码相关的风险。

预订演示下载
分享到:
linkedin brandsSocialx logo
资源中心

帮助您入门的资源

更多帖子
资源中心

帮助您入门的资源

更多帖子