XEE漏洞
XXE漏洞简介
XXE(XML External Entity,XML外部实体注入)漏洞产生的原因是:应用程序在解析XML时没有过滤外部实体的加载,导致加载了恶意的外部文件,造成执行命令、读取文件、扫描内网、攻击内网应用等危害。
XML基础
XML(eXtensible Markup Language,可扩展标记语言)用来结构化、存储以及传输信息。
XML文档结构包括3部分:XML声明、文档类型定义(可选)和文档元素。
XML声明
<?xml version="1.0" encoding="ISO-8859-1"?>
XML声明以结束。version属性时必选的,他定义了XML的版本。encoding属性是可选的,定义了XML进行解码时所有的字符集。
文档类型定义
文档类型定义(Documnet Type Definition,DTD)用来约束一个XML文档的书写规范。
对元素进行定义的基础语法如下:
<!ELEMENT 元素名 类型>
内部定义
将文档类型定义直接放在XML文档中,称为内部定义。内部定义的格式如下:
<!DOCTYPE 根元素 [元素声明]>
<!DOCTYPE note [
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
DOCTYPE note定义此文档是note类型的文档。ELEMENT note(to,from,heading,body)定义note有4个元素:to、from、heading、body。
ELEMENT to(#PCDATA)定义to元素为#PCDATA类型
XML漏洞修复
- 禁用外部实体
- 过滤用户提交的XML数据。过滤关键词为<!DOCTYPE、<!ENTITY、SYSTEM和PUBLIC。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?