频道栏目
首页 > 安全 > 网站安全 > 正文

xpath注入原理分析

2012-12-11 09:50:20           
收藏   我要投稿
  xpath是xml路径语言,用于配置文件的查找。数据库就是xml文件。

常见的xpath语句如下:

 

<users>

      <user>

          <firstname>Ben</firstname>

          <lastname>Elmore</lastname>

          <loginID>abc</loginID>

          <password>test123</password>

      </user>

      <user>

          <firstname>Shlomy</firstname>

          <lastname>Gantz</lastname>

          <loginID>xyz</loginID>

          <password>123test</password>

      </user>

</users>

 

//users/user[loginID/text()='"&request("loginID")&"' and password/text()='"&request("password")&"']/firstname/text()

 

关于xpath的语法可以参考:

 

http://www.2cto.com/kf/201107/97458.html

 

语法看懂了,看懂这个语句就很简单了。。。。。。

 

这个最终会显示firstname的值。。。。

 

注入语句跟其他注入一样:

 

数字型:  or 1=1

字符型: ' or '1'='1

 

这里顺带提个小问题,为什么 ' or '1'='1 会显示所有的firstname  (如搞不定的,可以回帖或者PM我,,,, )

 

这是很基本的注入,稍微高级点的:

 

例如判断父节点的名称,可以尝试:

' or substring(name(parent::*[position()=1]),1,1)='u

 

如果知道了当前节点名称,可以利用:

' or substring(password/text(),1,1)='1 判断值。。。。。。

 

====

 

xpath注入没有其他注入复杂,但也是一个趋势。。。。。。

 

另建议大家实际搭建环境模拟攻击,就很了解这个注入手法

相关TAG标签 原理
上一篇:对付SQL注入的手段能够应对XPath注入?
下一篇:PHPCMS2008黄页模块漏洞:变量初始化不严致任意PHP代码执行
相关文章
图文推荐
文章
推荐
热门新闻

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站