mysql xpath注入_XPath注入学习

XPath注入学习

这篇记录是看完先知社区:XPATH注入学习写的,所以可能很多内容是重复的。写这篇记录仅仅为了让自己更好的掌握XPath注入。

0x01 XPath入门

在学习XPath注入之前,先了解一下什么是XPath

学习入口:W3school学习XPath

按照我个人的理解,XPath就是用于查询xml节点的查询语句,类似于T-SQL。

0x02 XPath注入原理

XPath注入原理类似于SQL注入,当程序没有对用户输入的数据进行过滤就拼接到XPath查询语句中时,就可能产生XPath注入。但是与SQL注入不同的时,XPath没有用户权限这一说法,所以XPath注入容易导致所有XML数据泄露。

0x03 实例

实例1

// 1.php

$xml = simplexml_load_file('test.xml');

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

$result = $xml->xpath($query);

foreach($result as $k => $v){

echo $k . ' => ' . $v . '
';

}

?>

user1_value

user2_value

user3_value

user4_value

user5_value

user6_value

user7_value

flag{57e7f266bb0dc62f2cb0f25976c14e93}

正常XPath功能

当我们访问地址http://ctf.cn/1.php?name=user1时,查询语句是:user/username[@name='user1']。所以会查询user下的username节点,且username节点name属性的值为user1的节点内容。返回结果如下:

ff825beee5e51c25c6ce48d949ae9ff7.png

判断注入点

当我们在参数值中输入单引号'时,页面出现XPath查询报错,说明可能存在XPath注入。

此时的XPath语句:user/username[@name='user1'']

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值