攻防世界-Misc-SimpleRAR

知识点

1.rar文件头构成

2.gif帧分离

3.色道转换

4.二维码修复

步骤

1.题目描述

附件为rar文件,解压发现报错secret.png的文件头损坏,说明不能解压出secret.png文件。

在解压出的文件中,有一个flag.txt,但是没有flag。所以根据提示要修复secret.png的文件头。

2.rar文件头

RAR文件格式学习(了解)_rar文件头-CSDN博客

第一块为标记块(MARK_HEAD),其数据为:

52 61 72 21 1A 07 00 // 左边是低字节 ,右边是高字节,这是RAR4.x的签名

//签名即标志着该文件是由支持rar4.x版本的软件压缩而成,如果使用支持5.0版本的压缩软件压缩,其签名可能会不同

字节的说明:

52 61 为头部校验和(HEAD_CRC),占两个字节,每一块均从HEAD_CRC开始,所有的RAR都以 52 61 开头

72 为 块类型(HEAD_TYPE) 占一个字节,所有文件都如此

21 1A 为 块标记(HEAD_FLAGS) 占两个字节

07 00表示块大小 ,即 52 61 72 21 1A 07 00 (标记块)共占7个字节


然后就是每个文件的文件头(FILE_HEAD)

D5 56 :HEAD_CRC,2字节,也就是文件头部分的crc校验值

74 :HEAD_TYPE,1字节,块类型,74表示块类型是文件头

20 90 :HEAD_FLAGS,2字节,位标记,这块在资料上没找到对应的数值,不知道20 90代表什么意思。

2D 00 :HEAD_SIZE,2字节,文件头的全部大小(包含文件名和注释)

10 00 00 00 :PACK_SIZE,4字节,已压缩文件大小

10 00 00 00 :UNP_SIZE,4字节,未压缩文件大小

02:HOST_OS,1字节,保存压缩文件使用的操作系统,02代表windows

C7 88 67 36:FILE_CRC,4字节,文件的CRC值

6D BB 4E 4B :FTIME,4字节,MS DOS 标准格式的日期和时间

1D:UNP_VER,1字节,解压文件所需要的最低RAR版本

30:METHOD,1字节,压缩方式,这里是存储压缩

08 00 :NAME_SIZE,2字节,表示文件名大小,这里文件名大小是8字节(flag.txt)

20 00 00 00 :ATTR,4字节,表示文件属性这里是txt文件

66 6C 61 67 2E 74 78 74:FILE_NAME(文件名) ,NAME_SIZE字节大小,这里NAME_SIZE大小为8

再往后是txt文件内容,一直到第六行 65 结束,下面是另一个文件块的开始

(这里想了很久,我自己的理解:2D 00 :HEAD_SIZE,2字节,文件头的全部大小(包含文件名和注释)判断整个大小为45字节,从D5 56开始数45字节后是真个文件头,然后开始是内容,大小为10 00 00 00 :PACK_SIZE,4字节,已压缩文件大小,16字节)

这个块中存在两个crc值,一个是文件头块中从块类型到文件名这38个字节的校验,后一个则是压缩包中所包含文件的crc校验,解压时,会计算解压后生成文件的crc值,如果等于这里的crc,则解压完成,如果不同,则报错中断。
结尾块

这个结尾块和标记块字节大小和分析方法是一样的。

C4 3D :HEAD_CRC,2字节,从HEAD_TYPE到HEAD_SIZE的crc校验值

7B :HEAD_TYPE,1字节,表示该块是结尾块

00 40 HEAD_FALGS ,2字节,位标记

07 00 :HEAD_SIZE,2字节,块大小

与标记块类似的是,结尾块也是一个固定字节串的块,依次是 C4 3D 7B 00 40 07 00

3.纠正文件头

使用010打开rar,根据前面的文件头相关知识,52 61 到 00 00 00 00是整个rar的标识部分。

然后就是文件的开始,从D5 56 一直到哪里才表明flag.txt结束呢。这里我用HEAD_SIZE和PACK_SIZE来判断,HEAD_SIZE = 45 字节,PACK_SIZE = 16 字节,所以整个文件头从D5 56 数 45个字节到 57 00 43 结束 ,然后再往后数16字节为内容 ,到65 72 65 结束,再往后就是下一个文件的开始了(文件头)。

即A8 3C 是CRC,往后一个字节是块类型,表示为文件头,应该是74,而这里是7A,所以改掉就ok了。

4.gif图片文件头和帧分离

再次解压,得到一个png图片,打开什么也没有,用010打开,发现开头为GIF,所以修改后缀为gif,然后帧分离,得到两张图片。(在线,stegsolve,convert

5.色道转换与拼接二维码,定位符修复

使用stegsolve。

拼接修复后:

扫描即可得到flag。

flag{yanji4n_bu_we1shi}

相关推荐
sbjdhjd5 小时前
CTF 技术复盘:从参数类型绕过到正则回溯 | Merry Christmas PHP CTF(gift.php & gift_plus.php)
安全·网络安全·云计算·php·ctf·红队·网络攻防
Chengbei1115 小时前
DSH渗透测试插件dsh-pentest全新升级!适配DeepSeek Harness,可视化探索链路,一键搭建轻量化AI渗透测试环境。
人工智能·web安全·网络安全·微信·小程序·系统安全·安全架构
Latticy1 天前
vulnhub系列靶机-mrRobot
web安全·网络安全·渗透测试
白猫不黑1 天前
网络安全/信息安全专业学习路线与入行指南:从大学到岗位的完整规划
网络·学习·安全·web安全·网络安全·黑客技术
xierui1231231 天前
AI Agent 隐私架构:本地化重点为什么是登录态与执行权限
java·人工智能·网络安全·架构
Chockmans1 天前
春秋云境CVE-2025-49113
安全·web安全·网络安全·网络攻击模型·安全威胁分析·春秋云境·cve-2025-49113
白猫不黑1 天前
从运维到网络安全:转行优势、路径与薪资前景全解析
运维·网络·web安全·网络安全·信息安全·渗透测试
AI备忘录1 天前
(十一)DHCP 配置命令五厂商对照:华为 华三 锐捷 迈普 思科
服务器·网络·网络协议·网络安全·华为
0xBADCODE1 天前
Flask SSTI读SECRET_KEY+伪造Session:税务系统渗透全流程
前端·后端·python·安全·web安全·网络安全·flask
菩提小狗2 天前
每日安全情报报告 · 2026-08-20
网络安全·漏洞·cve·安全情报·每日安全