xxe与xml

1.参考

对于XXE的理解 - 先知社区 (aliyun.com)

http://t.csdn.cn/zUo5a

2.前置知识

xml被设计为传输和存储数据,xml文档结构包括:

xml声明

DTD文档类型定义(漏洞所在之处)

文档元素

焦点是数据的内容,其把数据从HTML分离,是独立于软件和硬件的信息传输工具。

xxe(xml external entity injection),即xml外部实体注入漏洞,xxe漏洞发生在应用程序解析xml输入时,没有禁止外部实体的加载,导致加载了恶意外部文件,造成文件读取、命令执行、内网攻击、DOS攻击等危害。

使用条件

没有禁止外部实体解析

xml与html主要差异

xml被设计为传输和存储数据,焦点是数据的内容;

html被设计用来显示数据,焦点是数据的外观;

html旨在显示信息,而xml旨在传输信息。

xml文档

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
第一部分:XML声明部分
<?xml version="1.0" encoding="ISO-8859-1"?>

第二部分:文档类型定义 DTD
<!--定义此文档是note类型的文档-->
<!DOCTYPE note[
<!--定义 note 元素有四个元素-->
<!ELEMENT note (to,from,heading,body)>
<!--定义 to 元素为 "#PCDATA" 类型-->
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
<!--外部实体声明-->
<!-- 形如: <!DOCTYPE 根元素 SYSTEM "文件名"> -->
<!ENTITY entity-name SYSTEM "URI/URL">
]>

第三部分:文档元素
<note>
<to>Dave</to>
<from>Tom</from>
<head>Reminder</head>
<body>Don't forget the meeting!</body>
</note>
————————————————
版权声明:本文为CSDN博主「angry_program」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/angry_program/article/details/104448524/

注意事项:

xml里大小写严格区分;

且只有一个根元素(包含所有其他元素,如students)

黑盒可以通过抓包后查看数据格式类型和Content-Type值(text/xml、application/xml)判断;

更改Content-Type,查看返回

自定义实体语法

1
2
3
4
5
6
7
8
9
<!DOCTYPE 根元素[

<!ENTITY 实体名 "实体内容">

]>

引用已定义的实体:

    &实体名;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
① 内部申明格式
<!DOCTYPE 根元素 [元素申明]>
DTD例子: <!ENTITY writer "Bill Gates">
XML例子: <author>&writer;</author>
注释: 一个实体由三部分构成: 一个和号 (&), 一个实体名称, 以及一个分号 (;)。


② 外部引用DTD格式
<!DOCTYPE 根元素 SYSTEM "外部DTD的URI">
DTD例子: <!ENTITY writer SYSTEM "http://www.***.com/dtd/entities.dtd">
XML例子: <author>&writer;</author>

③ 引用公共DTD格式
<!DOCTYPE 根元素 PUBLIC "DTD标识名" "公共DTD的URI">
读文件内容
有回显
1
2
3
4
5
6
7
8
9
<?xml version ="1.0" encoding="UTF-8"?>

<!DOCTYPE ANY [

<!ENTITY xxe SYSTEM "file:///d:/1.txt">

]>

<x>&xxe;</x>

这是一种外部实体应用方法

无回显

。。。

内网探针或攻击内网应用(触发漏洞地址)
RCE执行

安装了expect扩展的php环境里执行系统命令

引入外部实体dtd
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2023-2025 是羽泪云诶
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信