XPath injection
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了XPath injection相关的知识,希望对你有一定的参考价值。
参考技术A Edit by Qsaka本文以HCTF2015 injection一题为例,来分析 XPath 注入攻击。
题目源码如下
XPath 是一门在 XML 文档中查找信息的语言。
在 XPath 中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档节点(或称为根节点)。节点之间存在父、子、先辈、后代、同胞关系,以t3stt3st.xml为例
根节点 <root1> 、元素节点 <user><username><key><hctfadmin> 、属性节点 name='user1'
<root1> 是 <user> 和 <htcfadmin> 的父节点,同时也是 <user><hctfadmin><username><key> 的先辈。 <username> 和 <key> 是同胞节点。
通过在路径表达式中使用“|”运算符,可以选取若干个路径。
从index.php源码可知XPath查询语句为 $query="user/username[@name='".$user."']" , 且 $user 经过关键字替换。但是黑名单 $re 中都为SQL关键字,所以并不影响对XPath进行注入。我们可以构造payload如 ']|//*|zzz[' 来进行注入,获取文档中的所有元素节点。
HCTF2015 writeup
XPath基础教程
javax.inject.Inject 和 com.google.inject.Inject 有啥区别?
【中文标题】javax.inject.Inject 和 com.google.inject.Inject 有啥区别?【英文标题】:What is the difference between javax.inject.Inject and com.google.inject.Inject?javax.inject.Inject 和 com.google.inject.Inject 有什么区别? 【发布时间】:2012-02-04 02:38:44 【问题描述】:我开始使用 Google Guice。
我有一个简单的问题:
javax.inject
的@Inject
注解和com.google.inject
的@Inject
有什么区别?
谢谢。
【问题讨论】:
org.jboss.beans.metadata.api.annotations.Inject
的@Inject
怎么样? :p
【参考方案1】:
javax.inject
是源自 google 工作(和其他人)的规范
区别可见Google Guice Wiki
【讨论】:
以上是关于XPath injection的主要内容,如果未能解决你的问题,请参考以下文章