XML基础知识
eXtensible Markup Language可扩展标记语言
XML用途
- 配置文件
- 交换数据
- XML格式要求
- XML格式校验
DTD文档类型定义
不同语言支持的协议
PHP扩展
XXE
XML External Entity Injection XML外部实体注入
可扩展标记语言(Extensible Markup Language. XML),用于标记电子文件使其具 有结构性的标记语言,可以用来标记数据’ 定义数据类型,是一种允许用户对自己的 标记语言进行定义的源语言.XML是标准通用标记语言(SGML)的子集,非常适合 Web传输。
XML提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。
发现目前一些普遍使用xml的场景中都存在一种古老的XML实体注入漏洞,这可能 导致较为严重的安全问题,使得攻击者可能可以任意访问服务器以及应用所在网络的任何资源;
XXE利用方式
实体注入
外部实体注入
首先的下载低版本php
再换版本
端口探测
- 3306
无变化,端口存在
- 3345
报错,端口不存在
命令执行
XXE炸弹攻击
通过读取一些很大的文件
xxe-labs
盲打
pikachuXXE
XXE防御
1、 检查所使用的底层解析库,默认禁止外部实体的解析.
2、 增强対系统的监控,防止此问题被人利用.
3、 使用第三方应用代码及时升级补丁
4、 对于PHP.由于sinplexml_load_string函数的XML解析问题出在1 ibxml库上,所以 加载实体前可以调用这样一个函数以进行防护
5、
6、JAVA
7、python
8、.Net
9、ASP
10、过滤字符
11、WAF