1. 墨者学院:XPath注入漏洞实战🚀
2. XPath注入漏洞概述🔍
XPath
注入是一种针对XML
文档查询语言的注入攻击,类似于常见的SQL注入
,但针对的是XPath
查询语言。当Web应用程序使用用户输入来构造XPath
查询语句时,如果未对用户输入进行严格过滤,攻击者就可以通过构造特殊的XPath
查询来获取未授权的数据访问权限。
3. 注入原理深度分析🎯
3.1 正常查询逻辑⚡
在正常情况下,网站可能会使用类似如下的XPath查询语句:
xpath
//user[username='输入的值']/password
这个查询的含义是:在XML文档中查找username
节点值等于用户输入的值的user
节点,并返回其password
子节点的值。
3.2 注入Payload解析⚡
我们使用的注入Payload为:
']|//*|//*['
这个Payload可以分解为三个关键部分:
-
第一部分:
']
- 作用:闭合原始查询中的单引号和方括号
- 效果:将原始查询变为
//user[username='']
-
第二部分:
|//*
|
是XPath中的"或"操作符//*
选择文档中的所有节点- 效果:添加一个选择所有节点的查询条件
-
第三部分:
|//*['
- 作用:保持语法完整性
- 效果:添加一个无效查询条件来平衡语法结构
3.3 完整查询解释⚡
最终形成的XPath查询类似于:
xpath
//user[username='']|//*|//*['']
这个查询会执行以下操作:
- 首先尝试匹配
username=''
的空结果(通常无返回) - 然后匹配文档中的所有节点(
//*
) - 最后尝试匹配一个无效条件来保持语法完整
4. 实战返回结果🏁

声明:本文仅用于安全学习,严禁非法测试! ❗❗❗