【Word文档】结构分析+安全

news/2024/12/14 8:28:24/文章来源:https://www.cnblogs.com/o-O-oO/p/18606295

结构分析

自2000年代中期以来,办公文档(如2005年发布的 OpenOffice.org 2.0)已经被设计为一种包含文档内容的归档文件。在下图中,可以看到一个 Word 文档的结构。


从上图可以发现,这个归档文件中的所有结构是相互关联的,而这种关系是从末端开始的。

在归档文件的末尾,有一个名为中央目录记录结束标记(EOCD)的结构。该结构包含关于中央目录文件头(CDFH)大小、其偏移量以及归档文件中条目总数的信息。通过这个结构,可以定位到 CDFH。

(1)本地文件头(LFH)

位置: 位于ZIP文件的开头。

内容: 包含文件名、文件大小、CRC32校验值等信息。每个文件在ZIP文件中的数据块都从LFH开始。

作用: 描述单个文件的基本信息。

与其他部分关系: 在中央目录记录中,每个文件条目会引用它的起始偏移量

(2)中央目录文件头(CDFH)

位置: 通常在ZIP文件数据块之后,用于汇总所有文件的基本信息。

内容: 包含扩展的文件信息(如文件名、相对于LFH的偏移量); 每个文件在中央目录中都有对应的条目,条目中记录了该文件的偏移地址和属性。

(3)中央目录结束记录(EOCD)

位置: 位于ZIP文件的末尾。

内容: 包含中央目录的偏移量、大小、文件总数等信息。

作用: 作为ZIP文件的索引起点,帮助解析中央目录和LFH。
与CDFH关系: 通过偏移量定位中央目录起始位置,从而间接定位所有文件的LFH。

结构如何被攻击者操控分析

从上面的Word结构分析可知, ZIP归档文件的结构是从末尾开始构建的,同时各部分之间通过链接关联在一起。基于该原理, 下面将以三种不同的假设进行测试, 如图:

假设1: 如果在归档文件的开头添加额外的数据,Word或归档程序是否仍能恢复并成功打开文件?

假设2: 如果破坏各部分之间的链接并删除CDFH(中央目录文件头,且其本身不包含文件数据),Word或归档程序是否仍能恢复并成功打开文件?

假设3: 如果破坏各部分之间的链接并删除EOCD(中央目录结束记录,这是一种关键的恢复过程部分),Word或归档程序是否仍能恢复并成功打开文件?

下面是三种假设的测试结果:

假设1: Word: 成功; ZIP: 失败(该文件不再是存档)

假设2: Word:成功; ZIP: 成功

假设3: 成功; ZIP: 成功

在对上面的假设进行检验过程中, 中间的过程记录如下:

(1) 要使Word文档达到最小恢复标准, 以下文件必不可少:


[Content_Types].xmlWord/document.xmlWord/_rels/document.xml.rels,_rels/.rels;

这些文件包含了有关元素之间关系的重要信息, 并构成Word文档所需的标准文件层次结构。

(2)本地文件头损坏的ZIP存档将仅显示文件结构, 实际文件内容将为空。

(3)如果ZIP文件的末尾部分损坏, 存档文件和Word将尝试使用替代恢复方法, 即利用完整的本地文件头。

从以上结果可以看到, Word比ZIP更能抗文件损坏。当 CDFH、EOCD 损坏,甚至添加随机字节以制造不存在的 LFH 结构时,Word 仍然可以成功恢复文件;而在第一种假设下(在文件开头添加随机字节),ZIP 则无法正常工作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/852364.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Word文档】结构分析

自2000年代中期以来,办公文档(如2005年发布的 OpenOffice.org 2.0)已经被设计为一种包含文档内容的归档文件。在下图中,可以看到一个 Word 文档的结构。从上图可以发现,这个归档文件中的所有结构是相互关联的,而这种关系是从末端开始的。 在归档文件的末尾,有一个名为中…

财务知识-开票加税点的合理点数

财务知识-开票加税点的合理点数

【大数据】大数据 Hadoop 管理工具 Apache Ambari(HDP)

一、概述 Apache Ambari 是 Hortonworks 贡献给Apache开源社区的顶级项目,它是一个基于web的工具,用于安装、配置、管理和监视 Hadoop 集群。 Ambari 目前已支持大多数 Hadoop 组件,包括 HDFS、MapReduce、Hive、Pig、 Hbase、Zookeper、Sqoop 和 Hcatalog 等。 Apache Amba…

读数据保护:工作负载的可恢复性13一致性模型

一致性模型1. 一致性模型 1.1. 数据库与其他东西相比,还有一个很重要的区别就在于,它们需要通过某种机制来确保数据一致,对于运行在多个节点上的数据库来说,这尤其重要1.1.1. 一致性模型(consistency model)1.2. 立即一致性1.2.1. 立即一致性(immediate consistency)也叫强…

【Hadoop框架】 生态组件之分布式文件系统 HDFS 常用命令

一、HDFS集群的启动停止1.1 单服务启动停止方式1.1.1 单服务启动1.1.2 单服务停止1.2 多服务启动停止方式1.2.1 多服务启动1.2.2 多服务停止二、获取HDFS集群信息三、HDFS常用命令3.1 查看HDFS帮助命令3.1.1 查看hdfs命令使用提示3.1.2 查看特定指定的使用方法3.2 在HDFS上创建…

渗透测试-前端验签绕过之SHA256

本文是高级前端加解密与验签实战的第1篇文章,本系列文章实验靶场为Yakit里自带的Vulinbox靶场,本文讲述的是绕过SHA256签名来爆破登录。 绕过通过查看源代码可以看到key为 1234123412341234通过查看源代码可以看到是通过SHA256来进行签名的,他把请求体的username和password字…

如何跨越心理距离,构建客户信任桥梁

销售活动本质上是销售人员与相对陌生或不够熟悉的对象建立联系的过程。在此过程中,销售人员面对的客户可能是完全陌生的,或是虽有数次交集却彼此了解不深。这种情形自然导致了双方心理上的显著距离,进而引发客户的疑虑与不信任,对可能遭遇的欺骗保持警惕,实属人之常情。 因…

使用 LatestCSharpFeatures 库让旧版本 dotnet 框架项目使用新 C# 语法

本文将和大家介绍 dotnet campus 开源组织的 LatestCSharpFeatures 库,通过 LatestCSharpFeatures 库可以让使用旧版本的 dotnet 框架的项目可以应用上更多最新版本的 C# 语法背景 众所周知,在咱 dotnet 体系里面,框架和语言版本是分离的。即使 C# 的版本支持情况只和编译器…

【Hadoop框架】生态组件之分布式文件系统 HDFS 可视化界面

一、Overview 二、Datanodes 三、Datanode Volume Failures 四、Snapshot 五、Startup Progress 六、Utilities6.1 Browse the file system6.2 Logs6.3 Log Level6.4 Metrics6.5 Configuration6.6 Process Thread Dump6.7 Network TopologyHDFS 提供了 Web 管理界面,可以很方便…

【Hadoop框架】Yarn 核心组件+工作流程+基本使用

一、Yarn的基本概念和架构二、Yarn的工作流程三、Yarn的核心组件及其功能 ‌ 3.1 ResourceManager‌3.2 NodeManager3.3 ApplicationMaster四、Yarn的基本使用4.1 Yarn Shell 命令4.2 Yarn Shell 使用示例4.2.1 首先确定 Yarn 集群启动4.2.2 发起任务4.2.3 查看任务4.2.4 终止…

基于中间畸变流估计的滚动快门校正

基于中间畸变流估计的滚动快门校正提出通过直接估计从全局快门(GS)到滚动快门(RS)的失真,来校正滚动快门(SS)失真的图像。现有的方法通常使用从RS到GS的未失真流进行校正。它们最初从连续的RS帧预测流,随后使用时间相关的缩放因子将其重新缩放为从RS帧到底层GS图像的位…

鸿蒙NEXT开发案例:颜文字搜索器

【引言】 本文将介绍一个名为“颜文字搜索器”的开发案例,该应用是基于鸿蒙NEXT平台构建的,旨在帮助用户快速查找和使用各种风格的表情符号。通过本案例的学习,读者可以了解如何在鸿蒙平台上进行数据处理、UI设计以及交互逻辑的实现。 【环境准备】 • 操作系统:Windows 10…