php xpath注入工具,bee-box xPath注入学习之靶场练习

在bwapp中,对应的xPath注入bug是XML/XPathInjection (Search),这个漏洞的引用文件是xmli_2.php,直接先看下这份文件的源码:

f9f15055a57db87bb1afcda45656e6ff.png

首先从get请求中接收到表单的值,然后$genre送入到xmli中,进行一次字符过滤,由于这里使用的安全等级为最低级,所以没有进行任何过滤就返回了data。

e2a30fac4f4922c00097837cb9e64cb2.png

接收到返回的data值之后,php文件加载xml文件,使用simplexml_load_file()函数,将xml文件的路径作为参数传值给该函数,将结果返回给$xml使用$xml中的xpath方法进行查询,参数为查询的路径,在一篇基础语法的讲解中就有,但是这次需要补充一个contains函数,这是一个php为xpath提供的字符串查找函数,具体的使用为contains(st-ring1,string2),表示如果 string1 包含 string2,则返回 true,否则返回 false。

855936327c3b2721cdd4d418e7294024.png

如果查询到结果返回查询得到信息,进行遍历输出,如果没有查询到,那么输出提示信息。

php文件的内容说完了,接着看一下xml文件的结构。

d6fb98b68dd49dbdc2aacc296044d5de.png

19ff6cb08eaa4c0d1621644c69b595c5.png

根节点是heroes,接着是hero元素节点,每个hreo元素节点又拥有id、login、pas-sword、secret、movie、genre 6个子节点。

看下php文件中xpath的查询语句:

//hero[contains(genre,'$genre')]/movie

这句xpath查询语句的意思是,如果genre节点的值中包含$genre变量的值,那么就把这些符合条件的节点的movie值输出到页面中,但是看不到login和password,看不到就去构造,构造xpath注入语句需要xpath查询语句中的一个“|”并查符号,返回并查集。

构造后的语句如下:

//hero[contains(genre,'22222')] |//hero/login| a[contains('0','0')]/movie

解释一下这句语句的意思,查询genre中有无22222字符串,无,查询所有hreo节点下login节点的值,有,返回结果集,查询a节点中存在后面的信息,a节点都不存在,查什么。

在url中?genre后面直接加22222')] |//hero/login| a[contains('0','0,返回结果,注入成功。

05680e6336ddf90c75266490ac003aab.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值