XXE
概述
由于服务器未对前端输入进行严格过滤导致服务器按照攻击者注入的xml实体内容配置执行,进而引发安全问题
扩展知识
什么是xml
XML 指可扩展标记语言(EXtensible Markup Language)
XML 是一种标记语言,很类似 HTML
XML 的设计宗旨是传输数据,而非显示数据
XML 标签没有被预定义。您需要自行定义标签。
XML 被设计为具有自我描述性。
XML 是 W3C 的推荐标准
和html的区别
XML 不是 HTML 的替代。
XML 和 HTML 为不同的目的而设计:
XML 被设计为传输和存储数据,其焦点是数据的内容。
HTML 被设计用来显示数据,其焦点是数据的外观。
HTML 旨在显示信息,而 XML 旨在传输信息。
xml结构
1.声明
2.文档类型定义dtd
3.文档元素
什么是DTD
DTD 的目的是定义 XML 文档的结构。它使用一系列合法的元素来定义文档结构。可以理解为类和对象的关系
危害
1.DOS攻击
2.SSRF攻击
3.使用file协议读取任意文件
4.端口探测
5.执行系统命令
防御
禁止加载外部实体即可
libxml_disable_entity_loader(true);改为false
靶场实操
直接写入xml内容
<?xml version="1.0"?>
<!DOCTYPE note [<!ENTITY xxe "彭于晏">]>
<note>&xxe;</note>
回显如下
完成