首页 > 解决方案 > *.xlsx 文件何时以及为什么包含 *.bin 文件?

问题描述

我目前正在开展一个项目,以评估上传*.xlsx的文件是否真的只是一个*.xlsx文件而不是*.xlsm扩展名已更改的文件。

由于一个*.xlsx文件或多或少是一个*.zip文件,我提取了内容并注意到一些文件包含一个*.bin文件,而另一些则没有。尽管 excel 文件可能是合法的,但没有任何尝试通过欺骗用户重命名来注入另一个扩展名。

因此我的问题是:文件何时xlsx包含*.bin文件?这种方法是否适合检测xlsx文件是否包含宏?

我还在检查[content_types].xml文件的内容以包含以下字符串之一:application/vnd.ms-office.vbaprojectapplication/vnd.ms-excel.sheet.macroenabled.

标签: excelvbasecurity

解决方案


xlsx 文件何时包含 *.bin 文件?

好吧,bin 文件不仅是为具有宏的工作簿创建的,而且是为其中嵌入了 OLE 对象的工作簿创建的。

试试这个。创建一个新工作簿并单击Developer Tab | Insert ActiveX control - Say Commandbutton。将文件保存并关闭为.xlsx. 重命名.Zip并检查 zip 文件

在此处输入图像描述

编辑

是的,有时也可以存储打印机设置。快速搜索并发现了这个链接

如果链接失效,请从上面的链接中提取。

除了 VBA 项目和嵌入的 OLE 对象,我们还在 Excel 2007 .XLSB 文件中找到 BIN 部分,原因如下:

  1. 工作簿部分workbook.bin(MIME类型:application/vnd.ms-excel.workbook)
  2. 样式字典部分styles.bin(MIME类型:application/vnd.ms-excel.styles)
  3. 对于每个工作表,

    一种。索引部分工作表/binaryIndexxx.bin(MIME 类型:application/vnd.ms-excel.binIndexWs)

    湾。工作表部分worksheets/sheetxxx.bin(MIME类型:application/vnd.ms-excel.worksheet)

    C。一个可选的打印机设置部分printerSettings/printerSettingsxxx.bin(MIME类型:application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings)

  4. 可选计算链部分calcChain.bin(MIME类型:application/vnd.ms-excel.calcChain)

  5. 可选注释部分 commentsxxx.bin(MIME 类型:application/vnd.ms-office.legacyDrawing)
  6. 可选表格部分表格/tablexxx.bin(MIME类型:application/vnd.ms-excel.table)
  7. 可选连接部分connections.bin(MIME类型:application/vnd.ms-excel.connections)
  8. 可选 Chartsheet、Dialogsheet、Macrosheet 部件(chartsheets/sheetxxx.bin、dialogsheets/sheetxxx.bin、macrosheets/sheetxxx.bin)(MIME 类型:application/vnd.ms-excel.chartsheet、application/vnd.ms-excel.dialogsheet、应用程序/vnd.ms-excel.macrosheet)
  9. 可选数据透视表部分 (pivotTables/pivotTablexxx.bin)(MIME 类型:application/vnd.ms-excel.pivotTable)
  10. 可选数据透视表缓存定义和记录部分(pivotCache/pivotCacheDefinitionxxx.bin、pivotCache/pivotCacheRecordsxxx.bin)(MIME 类型:application/vnd.ms-excel.pivotCacheDefinition、application/vnd.ms-excel.pivotCacheRecords)
  11. 可选查询表(queryTables/queryTablexxx.bin)(MIME类型:application/vnd.ms-excel.queryTable)

推荐阅读