XPATH injection

加入HackenProof Discord服务器,与经验丰富的黑客和赏金猎人交流!
黑客见解 参与深入探讨黑客的刺激和挑战的内容
实时黑客新闻 通过实时新闻和见解及时了解快节奏的黑客世界
最新公告 了解最新的赏金计划发布和重要平台更新
加入我们的 Discord,立即与顶尖黑客合作!
基本语法
一种称为XPath注入的攻击技术被用来利用根据用户输入形成XPath(XML路径语言)查询的应用程序来查询或导航XML文档。
描述的节点
表达式用于选择XML文档中的各种节点。以下是这些表达式及其描述的总结:
nodename:选择所有名称为“nodename”的节点。
/:从根节点进行选择。
//:选择与当前节点匹配的节点,无论它们在文档中的位置如何。
.:选择当前节点。
..:选择当前节点的父节点。
@:选择属性。
XPath示例
路径表达式及其结果的示例包括:
bookstore:选择所有名称为“bookstore”的节点。
/bookstore:选择根元素bookstore。请注意,表示元素的绝对路径以斜杠(/)开头。
bookstore/book:选择bookstore的子元素book。
//book:选择文档中的所有book元素,无论它们的位置如何。
bookstore//book:选择bookstore元素下的所有后代book元素,无论它们在bookstore元素下的位置如何。
//@lang:选择所有名称为lang的属性。
谓词的使用
谓词用于细化选择:
/bookstore/book[1]:选择bookstore元素的第一个book元素子节点。对于将第一个节点索引为[0]的IE版本5到9的解决方法是通过JavaScript将SelectionLanguage设置为XPath。
/bookstore/book[last()]:选择bookstore元素的最后一个book元素子节点。
/bookstore/book[last()-1]:选择bookstore元素的倒数第二个book元素子节点。
/bookstore/book[position()<3]:选择bookstore元素的前两个book元素子节点。
//title[@lang]:选择具有lang属性的所有title元素。
//title[@lang='en']:选择具有值为“en”的“lang”属性的所有title元素。
/bookstore/book[price>35.00]:选择价格大于35.00的所有book元素。
/bookstore/book[price>35.00]/title:选择价格大于35.00的book元素的bookstore中的所有title元素。
未知节点的处理
通配符用于匹配未知节点:
*:匹配任何元素节点。
@*:匹配任何属性节点。
node():匹配任何类型的任何节点。
进一步的示例包括:
/bookstore/*:选择bookstore元素的所有子元素节点。
//*:选择文档中的所有元素。
//title[@*]:选择具有至少一个任意类型属性的所有title元素。
访问信息
XPath注入是一种利用应用程序中的XPath表达式来访问或修改数据的攻击技术。攻击者可以通过构造恶意的XPath表达式来绕过身份验证、访问敏感数据或执行其他恶意操作。XPath注入通常发生在搜索表单或过滤器等用户可控输入的地方。要防止XPath注入,应该使用参数化查询或编码输入数据。
识别和窃取模式
使用错误的XPath查询来识别数据库架构
通过逐步调整查询来窃取数据
身份验证绕过
查询示例:
用户和密码中的OR绕过(两者的值相同)
滥用空值注入
用户名或密码中的双重OR(仅在一个易受攻击的字段中有效)
重要提示:请注意**“and”是首先执行的操作**。
字符串提取
输出包含字符串,用户可以操纵这些值进行搜索:
盲目利用
获取值的长度并通过比较提取它:
Python 示例
读取文件
Payload:
Request:
Analysis:
The payload
' or '1'='1will make the XPath query always return true, allowing the attacker to read the entire file.
Recommendation:
Sanitize user input and use parameterized XPath queries to prevent XPath injection.
OOB利用
自动化工具
参考资料

加入 HackenProof Discord 服务器,与经验丰富的黑客和赏金猎人交流!
黑客见解 参与深入探讨黑客行为的刺激和挑战的内容
实时黑客新闻 通过实时新闻和见解了解快节奏的黑客世界
最新公告 了解最新启动的赏金任务和重要平台更新
加入我们的 Discord,立即与顶尖黑客合作!
最后更新于