2018-05-20-xml attacks

首先了解一下xml格式文档

xml:可拓展标记性语言,主要用来做两台不同体系系统计算机沟通用。

典型的xml格式如下所示:


图一

图中我们可以看到,它显示显示了xml版本,然后就是编码格式,接着定义根节点(可理解为标签作用),然后就是我们子节点,,,等,最后闭合根节点。

然后介绍一些注意点:首先标签都是要闭合的,然后就是xml的标签严格区分大小写,属性值需要加""

接下来介绍一下entity实体,xml定义了两种entity实体,一种是在XML文档中使用,另一种在为参数在DTD文件中使用。


图二

举个例子:

]>

&name;

实际引用的时候就经常会加上system

如下所示:


图三


图四



XML ATTACKS 1:


图五

显然接受了xml的赋值后打印出来,由于未对xml字符串做任何处理,因此可有动作

构造的payload如下所示:

图六

发现xml格式要求挺高的.....我自己看图构造的payload老是各种出错。。。。


图七


XML ATTACKS 2:

先理解一下xpath:用于在xml文档查找信息的语言,可用于xml文档中文件元素和属性的遍历。

先贴上源代码:


图八

题目中xml文档整理如下图所示:


图九

从根节点到各个子节点一样一样都例举出来了,然后看源代码,可以发现源代码先定义了x这个xml变量,然后再将它 XML 字符串转换为 SimpleXMLElement 对象,并赋值给$res,然后查询了/users/user里面name的值为$name的,并返回其所有父节点的message里面的值。

然后执行查询,最后while循环显示查询的值。

payload构造过程如下:


图十

接着构造永真语句


图十一

接着查询当前节点的兄弟节点:


图十二

然后查询password


图十二

最后推荐一篇文章:

http://www.freebuf.com/sectool/169122.html

你可能感兴趣的:(2018-05-20-xml attacks)