SRC有关xlsx和xls挖掘
我目前没有在全网看见过相关思路,我应该是第一个发现该思路的人,如需转载,请标注作者名:dollmarker
先问一句:拿到一个公示页的 .xlsx 或是 .xls附件,你是怎么看的?
拖进 Excel,拖到最后一行,Ctrl+F 搜「身份证」「身份证号」—— 没有,好,这个点过了。
如果你一直是这么干的,那建议你把这篇文章看完,然后回去把你之前放过的附件全重扫一遍。
因为 .xlsx /.xls里真正值钱的东西,根本不在表格里。
这不是"运气好捡到个洞",这是一个可以批量复现的结构性缺陷。下面我将讲解它的原理:
一、xlsx
Excel/WPS 在"引用外部数据源"并保存时,会把外部工作簿的完整内容以缓存形式内嵌进 xlsx,以便源文件不在时仍能显示旧值。制作公示附件时,制表人把含身份证号的源表列删除/隐藏后另存,但外部链接缓存没有被清理——于是全量明文身份证号随公示附件一起公开
漏洞原理:Excel (.xlsx) 的内部结构
很多人不知道,现代 Excel 的 .xlsx 文件本质上是一个 ZIP 压缩包。
- 表面脱敏: 开发人员在 Excel 界面里可能把“身份证号”、“手机号”等敏感字段做成了隐藏列、或者用
***进行了脱敏显示。 - 底层残留: 但是,这些原始数据在底层的 XML 文件中并没有被真正删除。图片中提到的
externalLink1.xml是 Excel 的“外部链接”文件,通常用于关联其他工作表的数据。即使前端不显示了,这些未清洗的原始数据依然静静地躺在 XML 结构里。 - 攻击方式: 攻击者只需将
.xlsx后缀改为.zip,解压后通过正则表达式(如<v>身份证号码</v>)即可直接提取出明文敏感信息。
案例介绍:
http://xxxx/xxx/xxx.xlsx,直接下载到本地
之后用7-zip打开或unzip解压,文件里还带着一份 Excel 外部链接缓存(xl/externalLinks/externalLink1.xml),那份缓存里存的是没有脱敏的源表,列是姓名、性别、身份证号码、家庭住址、联系电话、开户银行名称、开户银行账号、学号、学历、申请对象类别、年级、学制、专业。整个过程不需要任何登录或权限校验


常见xlsx泄露路径:
xl/externalLinks/externalLink1.xml
xl/sharedStrings.xml
二、xls
.xls 文件为 OLE2 复合文档(CFB)。其可见工作表 并无"身份证号"列——表面上看已做脱敏。
但文件的 Workbook 流中残留了另一份完整数据集的明文:结构化记录,每条包含姓名、18 位居民身份证号等敏感信息。
即:公示版本只展示了姓名等公开字段,而原始业务表(研究生报考/学籍信息表)的全量数据仍完整保留在附件的二进制流里,任何下载该附件的人都能用一条命令读出其中敏感信息
具体流程:xls文件头为 OLE2 复合文档魔数(D0 CF 11 E0 A1 B1 1A E1)。敏感信息以 BIFF8 压缩字符串形式存放于共享字符串表(SST),读 OLE2 内部流。 用 olefile 列出目录,找到 Workbook 流,流内是 BIFF8 记录序列,每条记录 [类型 2 字节][长度 2 字节][数据]。
下面可以使用脚本一键读取:python xls.py xxx.xls

原理讲完了,落地才是关键 —— 上面说的外部链接缓存、Crn 记录、隐藏表、批注,全都有现成的检测工具,.xls 深挖提取器、以及配套的 AI Skill。
而且收益往往不止报个信息泄露:
可能直接给你一个登录口 —— 除了号码,还泄露了学号/工号、姓名、制表机构名、源台账路径。这几样凑一起,在很多老旧系统上就够试探弱口令了。附件泄露常常是攻击链的起点,不是终点。
如果你也在用ai打渗透,装上skills即可在渗透过程如果涉及到xlsx或者是xls文件,可以自主检测有无泄露,说不定ai即可利用其中泄露信息打下一个登录口,不是因为它能变出漏洞,而是因为它会让你不再漏掉那些本来就在你眼前的漏洞。
下面是开源的github地址:https://github.com/dollmarker/attackxls,如果觉得不错给主播点点star吧🥰🥰🥰
本文来自博客园,作者:Doll_Marker,转载请注明原文链接:https://www.cnblogs.com/dollaikun/p/23444350

浙公网安备 33010602011771号