压缩包与嵌套文件
压缩包与嵌套文件
本文适合
已经能识别文件真实类型、需要处理 ZIP/RAR/7z/tar、密码、伪加密、损坏和多层嵌套的学习者。学完你能:判断压缩包失败的真实原因,按层记录提取链,并用密码来源、伪加密修复或已知明文攻击推进题目
压缩包题是 Misc 里最常见的基础题型之一。它不只是“解压文件”,还包括格式识别、伪装、损坏修复、密码爆破和多层嵌套。
一句话判断
看到压缩包、PK、Rar!、多层附件、解压失败、密码提示或“套娃”时,先区分真实加密、伪加密、损坏、分卷和嵌套,再按层验证而不是盲目爆破。
题目中常见信号
说明:后缀伪装或 Office/APK 容器
第一动作:file、7z l 看内部目录
说明:真加密或伪加密
第一动作:查注释、文件名、元数据和已知明文
说明:字段兼容或伪加密
第一动作:zipinfo -v 检查标志位
说明:嵌套题
第一动作:记录层级和每层密码来源
说明:密码错、损坏或故意篡改
第一动作:7z t、修复或重新裁剪
说明:分卷压缩
第一动作:检查分卷齐全和命名顺序
核心概念
压缩包分析的关键不是“能不能解压”,而是解释为什么解压失败:
- 真加密:数据内容被加密,需要密码、密钥或破解。
- 伪加密:ZIP 标志位被篡改,数据未真正加密。
- 损坏:header、中央目录、CRC、文件尾或分卷缺失。
- 嵌套:一层输出只是下一层输入。
- 容器格式:docx、xlsx、apk、jar 都是 ZIP 容器,但语义不同。
最小分析流程
- 先用 文件头、文件尾与真实类型 确认它真的是压缩包或 ZIP 容器。
- 用
7z l/zipinfo列目录,不急着解压。 - 查注释、文件名、目录名、时间戳、元数据和上一层输出中的密码线索。
- 用
7z t测试完整性,区分密码错误和结构损坏。 - ZIP 伪加密先看 flag bit;真加密再考虑
zip2john、rar2john、已知明文或字典。 - 每解出一层都重新跑
file、binwalk、strings,直到出现 flag 或转向其他题型。 - WP 中维护层级表:层数、文件名、工具、发现、下一步。
最小验证示例
file archive.bin
7z l archive.bin
7z t archive.bin
zipinfo -v archive.bin | head -80
unzip -z archive.bin
strings -n 6 archive.bin | head密码破解和伪加密初查:
zip2john locked.zip > zip.hash
john zip.hash --wordlist=wordlist.txt
# 伪加密常需要检查 ZIP general purpose bit flag
zipinfo -v fake.zip | Select-String "file security status|extended local header|general purpose"判断依据:
7z l 能列目录但解压提示 encrypted -> 继续查密码或伪加密
7z t 提示 CRC Failed -> 先确认密码,再看损坏和裁剪
每层输出重新 file/binwalk -> 防止把下一层当最终结果常见利用 / 解题路线
路线总览:
关键证据:magic bytes 是压缩格式
常用动作:改扩展名或直接 7z x
关键证据:ZIP 标志位异常,数据未加密
常用动作:修标志位或用专门脚本
关键证据:注释、文件名、图片/音频隐写结果
常用动作:用线索解压,不盲爆
关键证据:弱口令、题目暗示常见密码
常用动作:zip2john / rar2john + john
关键证据:包内有已知文件或固定头
常用动作:bkcrack 恢复密钥
关键证据:解出新压缩包或新格式
常用动作:分层记录并递归分析
关键证据:目录、文件尾、分卷缺失
常用动作:尝试 zip -FF、重命名分卷、手动补头尾
常见失败原因
常见原因:密码其实在上一层线索里
排查动作:先查注释、文件名、EXIF、strings
常见原因:嵌套题未递归
排查动作:对每层输出重新 file / binwalk
常见原因:只看解压器报错
排查动作:检查 ZIP 标志位
常见原因:字典方向错或不是弱口令
排查动作:回头找线索或考虑已知明文
常见原因:文件名顺序或分卷缺失
排查动作:检查 .z01/.zip、.part*.rar 齐全
常见原因:裁剪偏移不准或中央目录损坏
排查动作:重新按偏移提取,保留原件
迷你案例
题目给 photo.png,binwalk 发现尾部有 ZIP。提取后:
7z l hidden.zip
unzip -z hidden.zip注释里写着 password is in alpha channel。回到 图片像素与LSB 提取 Alpha 通道得到密码 moon2026,再解压:
7z x hidden.zip -pmoon2026得到 flag.txt。这类题的 S 级 WP 应该写成“图片尾部 ZIP -> ZIP 注释找密码来源 -> Alpha 通道提取密码 -> 解压”,而不是只写最终密码。