Pikachu漏洞平台练习——XXE实体类型举例、Blind OOB XXE、其他协议、XXE漏洞读取文件

1.XXE概述

XXE-“xml external entity injection”,即xml外部实体注入。

攻击者通过向服务器注入指定的xml实体内容,从而让服务器按照指定的配置进行执行,导致问题,也就是说服务端接收和解析了来自用户端的xml数据,而又没有做严格的安全控制,从而导致xml外部实体注入。

2.本地实体类型与外部的实体类型

  • 本地实体类型举例说明如下:

        //foo是接受任何参数的
]>    //定义了一个实体 xxe 

	&xxe;    //&xxe进行引用 本地引用
	pass
  •  外部实体类型举例说明如下:shell.php

 定义一个test1.dtd文件

定义一个shell_test.xml文件



%test;
]>

	&xxe;
	mypass

打开代理,使用burpsuite进行抓包

Pikachu漏洞平台练习——XXE实体类型举例、Blind OOB XXE、其他协议、XXE漏洞读取文件_第1张图片

  • 本地文件调用,把shell_test.xml里面的内容拿出来,以post形式提交

Pikachu漏洞平台练习——XXE实体类型举例、Blind OOB XXE、其他协议、XXE漏洞读取文件_第2张图片

数据访问过程:先访问 test1.dtd里面的内容,把里面的声明的xxe实体拿出来,之后在页面的xxe进行调用。

  • 修改request中的entity部分,通过网络调用

Pikachu漏洞平台练习——XXE实体类型举例、Blind OOB XXE、其他协议、XXE漏洞读取文件_第3张图片

3.实体分类

  • 通用实体:用&实体名,引用的实体在dtd中定义,在xml文档中引用。

]>

Joe
&file;
...
  • 参数实体

使用%实体名(这里不能少空格),在dtd中定义,并且只能在dtd中使用%实体名;引用

只有在dtd文件中,参数实体的声明才能引用其他实体

和通用实体一样,参数实体也可以外部引用

4.漏洞利用:Blind OOB XXE

通过参数外带的方式可以把里面的内容读取出来:shell_test2.xml



%remote;%int;%send;
]>

定义test2.dtd文件


">

刷新网页,抓包

Pikachu漏洞平台练习——XXE实体类型举例、Blind OOB XXE、其他协议、XXE漏洞读取文件_第4张图片

将shell_test2.xml内容粘贴进去

Pikachu漏洞平台练习——XXE实体类型举例、Blind OOB XXE、其他协议、XXE漏洞读取文件_第5张图片

修改实体部分

Pikachu漏洞平台练习——XXE实体类型举例、Blind OOB XXE、其他协议、XXE漏洞读取文件_第6张图片

打开192.168.109.142的主机进行监听

Pikachu漏洞平台练习——XXE实体类型举例、Blind OOB XXE、其他协议、XXE漏洞读取文件_第7张图片

抓包request中添加完成,GO,报错

Pikachu漏洞平台练习——XXE实体类型举例、Blind OOB XXE、其他协议、XXE漏洞读取文件_第8张图片

Pikachu漏洞平台练习——XXE实体类型举例、Blind OOB XXE、其他协议、XXE漏洞读取文件_第9张图片

查看文件test2.dtd,发现http:后面忘记加//,修改后再次尝试,下面的remote是先调用的。

Pikachu漏洞平台练习——XXE实体类型举例、Blind OOB XXE、其他协议、XXE漏洞读取文件_第10张图片

查看监听端口9999

5.其他协议

Pikachu漏洞平台练习——XXE实体类型举例、Blind OOB XXE、其他协议、XXE漏洞读取文件_第11张图片

http协议的主机端口探测

Pikachu漏洞平台练习——XXE实体类型举例、Blind OOB XXE、其他协议、XXE漏洞读取文件_第12张图片

不同的端口返回时间和包不同,XXE还可以进行命令执行还有dos攻击等操作。

XXE漏洞的发现

漏洞平台选择xxe进行选择

  • 尝试注入特殊字符

尝试注入特殊字符会导致xml失效、引发解析异常、明确后端使用xml传输数据

  • 单引号 xml的属性值必须引用括号包过,而数据可能进入标签的属性值
  • 尖括号 xml的开始结束标签数据中出现尖括号都会引发异常
  • 注释符号进行注释
  • & 用于实体易用
  • CDATA分隔符号]]>引发异常操作

6.Pikachu平台练习——XXE漏洞读取文件

打开代理,输入如下内容,进行抓包:


]>
&xxe;

Pikachu漏洞平台练习——XXE实体类型举例、Blind OOB XXE、其他协议、XXE漏洞读取文件_第13张图片

Ctrl+R,执行GO ,在responce中查看即可。

你可能感兴趣的:(渗透学习)