SCW图标
英雄背景无分隔线
博客

コーダーがセキュリティを征服:共有して学ぶシリーズ-XQuery インジェクション

ヤープ・キャラン・シン
2019 年 2 月 28 日 发布
最后更新于 2026年3月10日

XQuery注入攻击有时被认为是更普遍的SQL注入攻击的小兄弟。它们有类似的根源,而攻击者利用的触发它们的命令也非常接近。只是,XQuery注入攻击只能在XML数据的XPath查询过程中发生。正因为如此,它们有时被称为XPath注入或只是XPath攻击,因为那是使用的传递方法。

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

在这一集里,我们将学习。

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

攻击者如何触发XQuery注入?

像大多数计算机语言一样,XPath的代码被设计得很简单。事实上,XPath是一种标准语言,所有的符号和语法语句都是不变的,无论使用它们的应用程序是什么。这意味着用于操作XPath查询的命令是众所周知的,甚至可以自动化。

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

例如,当试图绕过登录安全时,攻击者可以在他们的XPath查询末尾添加变量,从而绕过整个过程。一个例子可能是这样的。

//Employee[UserName/text()=anyone or 1=1 or a=a And Password/text()=doesnotmatter]

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

为什么XQuery注入是危险的?

XQuery注入攻击如此危险的一个主要原因是,它们允许攻击者绕过登录和账户安全。而且,它们允许使用一种不因应用程序而异的标准语言,以自动化的方式完成。攻击者可以自动扫描网站和应用程序的这种漏洞,一旦发现就立即行动。如果你的应用程序有漏洞,那么攻击者就会破坏它。除了损害账户安全外,XQuery攻击还可用于数据渗出。例如,攻击者可以将所有记录从XML数据库中转移出来。

消除XQuery注入攻击

与类似的漏洞一样,一个关键的防御措施就是不要相信用户的输入。在用户能够输入信息的任何时候,无论他们是否在进行数据库查询,都应该对这个过程进行审查。这与保护实体建筑的门窗并无不同,因为这些是人们可以进入的主要途径。

对于XQuery的注入保护,这是通过过滤来净化用户输入,或使用白名单输入验证用户输入来实现的。你也可以使用一个参数化的XPath接口,类似于SQL查询的准备语句。

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

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

关于XQuery Injections的更多信息

要进一步阅读,你可以看一下OWASP对XQuery注入的看法。你也可以用Secure Code Warrior 平台的免费演示来测试你新发现的防御知识,该平台可以培训网络安全团队成为终极网络战士。要了解更多关于击败这个漏洞以及其他威胁的流氓画廊,请访问安全代码 战士博客。

显示资源
显示资源

Webサイトの大半は、XMLデータベースを使用して、ユーザーのログイン認証情報、顧客情報、個人識別情報、機密データなどの重要な機能を実行しています。そのため、XQuery攻撃は攻撃の対象範囲がかなり大きくなります。

您还有兴趣吗?

Jaap Karan Singhは、セキュア・コーディング・エバンジェリストであり、チーフ・シンであり、セキュア・コード・ウォリアーの共同創設者です。

了解更多

Secure Code Warrior致力于在整个软件开发生命周期中保护代码,并协助构建将网络安全置于首位的文化。无论您是应用程序安全经理、开发人员、首席信息安全官还是安全相关人员,我们都能帮助您降低与不安全代码相关的风险。

预约演示
分享:
领英品牌社交x 标志
著者
ヤープ・キャラン・シン
2019年2月28日发布

Jaap Karan Singhは、セキュア・コーディング・エバンジェリストであり、チーフ・シンであり、セキュア・コード・ウォリアーの共同創設者です。

分享:
领英品牌社交x 标志

XQuery注入攻击有时被认为是更普遍的SQL注入攻击的小兄弟。它们有类似的根源,而攻击者利用的触发它们的命令也非常接近。只是,XQuery注入攻击只能在XML数据的XPath查询过程中发生。正因为如此,它们有时被称为XPath注入或只是XPath攻击,因为那是使用的传递方法。

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

在这一集里,我们将学习。

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

攻击者如何触发XQuery注入?

像大多数计算机语言一样,XPath的代码被设计得很简单。事实上,XPath是一种标准语言,所有的符号和语法语句都是不变的,无论使用它们的应用程序是什么。这意味着用于操作XPath查询的命令是众所周知的,甚至可以自动化。

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

例如,当试图绕过登录安全时,攻击者可以在他们的XPath查询末尾添加变量,从而绕过整个过程。一个例子可能是这样的。

//Employee[UserName/text()=anyone or 1=1 or a=a And Password/text()=doesnotmatter]

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

为什么XQuery注入是危险的?

XQuery注入攻击如此危险的一个主要原因是,它们允许攻击者绕过登录和账户安全。而且,它们允许使用一种不因应用程序而异的标准语言,以自动化的方式完成。攻击者可以自动扫描网站和应用程序的这种漏洞,一旦发现就立即行动。如果你的应用程序有漏洞,那么攻击者就会破坏它。除了损害账户安全外,XQuery攻击还可用于数据渗出。例如,攻击者可以将所有记录从XML数据库中转移出来。

消除XQuery注入攻击

与类似的漏洞一样,一个关键的防御措施就是不要相信用户的输入。在用户能够输入信息的任何时候,无论他们是否在进行数据库查询,都应该对这个过程进行审查。这与保护实体建筑的门窗并无不同,因为这些是人们可以进入的主要途径。

对于XQuery的注入保护,这是通过过滤来净化用户输入,或使用白名单输入验证用户输入来实现的。你也可以使用一个参数化的XPath接口,类似于SQL查询的准备语句。

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

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

关于XQuery Injections的更多信息

要进一步阅读,你可以看一下OWASP对XQuery注入的看法。你也可以用Secure Code Warrior 平台的免费演示来测试你新发现的防御知识,该平台可以培训网络安全团队成为终极网络战士。要了解更多关于击败这个漏洞以及其他威胁的流氓画廊,请访问安全代码 战士博客。

显示资源
显示资源

要下载报告,请填写以下表格。

恳请允许我们向您发送有关本公司产品及/或相关安全编码主题的信息。我们始终以高度谨慎的态度处理您的个人信息,绝不会出于营销目的将其出售给其他公司。

送信
scw 成功图标
SCW 错误图标
要提交表单,请启用“Analytics”Cookie。设置完成后,您可以再次将其禁用。

XQuery注入攻击有时被认为是更普遍的SQL注入攻击的小兄弟。它们有类似的根源,而攻击者利用的触发它们的命令也非常接近。只是,XQuery注入攻击只能在XML数据的XPath查询过程中发生。正因为如此,它们有时被称为XPath注入或只是XPath攻击,因为那是使用的传递方法。

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

在这一集里,我们将学习。

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

攻击者如何触发XQuery注入?

像大多数计算机语言一样,XPath的代码被设计得很简单。事实上,XPath是一种标准语言,所有的符号和语法语句都是不变的,无论使用它们的应用程序是什么。这意味着用于操作XPath查询的命令是众所周知的,甚至可以自动化。

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

例如,当试图绕过登录安全时,攻击者可以在他们的XPath查询末尾添加变量,从而绕过整个过程。一个例子可能是这样的。

//Employee[UserName/text()=anyone or 1=1 or a=a And Password/text()=doesnotmatter]

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

为什么XQuery注入是危险的?

XQuery注入攻击如此危险的一个主要原因是,它们允许攻击者绕过登录和账户安全。而且,它们允许使用一种不因应用程序而异的标准语言,以自动化的方式完成。攻击者可以自动扫描网站和应用程序的这种漏洞,一旦发现就立即行动。如果你的应用程序有漏洞,那么攻击者就会破坏它。除了损害账户安全外,XQuery攻击还可用于数据渗出。例如,攻击者可以将所有记录从XML数据库中转移出来。

消除XQuery注入攻击

与类似的漏洞一样,一个关键的防御措施就是不要相信用户的输入。在用户能够输入信息的任何时候,无论他们是否在进行数据库查询,都应该对这个过程进行审查。这与保护实体建筑的门窗并无不同,因为这些是人们可以进入的主要途径。

对于XQuery的注入保护,这是通过过滤来净化用户输入,或使用白名单输入验证用户输入来实现的。你也可以使用一个参数化的XPath接口,类似于SQL查询的准备语句。

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

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

关于XQuery Injections的更多信息

要进一步阅读,你可以看一下OWASP对XQuery注入的看法。你也可以用Secure Code Warrior 平台的免费演示来测试你新发现的防御知识,该平台可以培训网络安全团队成为终极网络战士。要了解更多关于击败这个漏洞以及其他威胁的流氓画廊,请访问安全代码 战士博客。

观看在线研讨会
开始吧
了解更多

请点击以下链接下载此资源的PDF文件。

Secure Code Warrior致力于在整个软件开发生命周期中保护代码,并协助构建将网络安全置于首位的文化。无论您是应用程序安全经理、开发人员、首席信息安全官还是安全相关人员,我们都能帮助您降低与不安全代码相关的风险。

显示报告预约演示
下载PDF文件
显示资源
分享:
领英品牌社交x 标志
您还有兴趣吗?

分享:
领英品牌社交x 标志
著者
ヤープ・キャラン・シン
2019年2月28日发布

Jaap Karan Singhは、セキュア・コーディング・エバンジェリストであり、チーフ・シンであり、セキュア・コード・ウォリアーの共同創設者です。

分享:
领英品牌社交x 标志

XQuery注入攻击有时被认为是更普遍的SQL注入攻击的小兄弟。它们有类似的根源,而攻击者利用的触发它们的命令也非常接近。只是,XQuery注入攻击只能在XML数据的XPath查询过程中发生。正因为如此,它们有时被称为XPath注入或只是XPath攻击,因为那是使用的传递方法。

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

在这一集里,我们将学习。

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

攻击者如何触发XQuery注入?

像大多数计算机语言一样,XPath的代码被设计得很简单。事实上,XPath是一种标准语言,所有的符号和语法语句都是不变的,无论使用它们的应用程序是什么。这意味着用于操作XPath查询的命令是众所周知的,甚至可以自动化。

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

例如,当试图绕过登录安全时,攻击者可以在他们的XPath查询末尾添加变量,从而绕过整个过程。一个例子可能是这样的。

//Employee[UserName/text()=anyone or 1=1 or a=a And Password/text()=doesnotmatter]

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

为什么XQuery注入是危险的?

XQuery注入攻击如此危险的一个主要原因是,它们允许攻击者绕过登录和账户安全。而且,它们允许使用一种不因应用程序而异的标准语言,以自动化的方式完成。攻击者可以自动扫描网站和应用程序的这种漏洞,一旦发现就立即行动。如果你的应用程序有漏洞,那么攻击者就会破坏它。除了损害账户安全外,XQuery攻击还可用于数据渗出。例如,攻击者可以将所有记录从XML数据库中转移出来。

消除XQuery注入攻击

与类似的漏洞一样,一个关键的防御措施就是不要相信用户的输入。在用户能够输入信息的任何时候,无论他们是否在进行数据库查询,都应该对这个过程进行审查。这与保护实体建筑的门窗并无不同,因为这些是人们可以进入的主要途径。

对于XQuery的注入保护,这是通过过滤来净化用户输入,或使用白名单输入验证用户输入来实现的。你也可以使用一个参数化的XPath接口,类似于SQL查询的准备语句。

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

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

关于XQuery Injections的更多信息

要进一步阅读,你可以看一下OWASP对XQuery注入的看法。你也可以用Secure Code Warrior 平台的免费演示来测试你新发现的防御知识,该平台可以培训网络安全团队成为终极网络战士。要了解更多关于击败这个漏洞以及其他威胁的流氓画廊,请访问安全代码 战士博客。

目录

下载PDF文件
显示资源
您还有兴趣吗?

Jaap Karan Singhは、セキュア・コーディング・エバンジェリストであり、チーフ・シンであり、セキュア・コード・ウォリアーの共同創設者です。

了解更多

Secure Code Warrior致力于在整个软件开发生命周期中保护代码,并协助构建将网络安全置于首位的文化。无论您是应用程序安全经理、开发人员、首席信息安全官还是安全相关人员,我们都能帮助您降低与不安全代码相关的风险。

预约演示[下载]
分享:
领英品牌社交x 标志
资源中心

开始所需的资源

其他投稿
资源中心

开始所需的资源

其他投稿