SDPCSEC 2025第一次纳新赛 Writeup
Deadman [easy]
将音频文件放入Audacity或Adobe Audition查看频谱图即可看到flag
cat cat cat [easy]
附件的图片foremost分离文件可以得到两张图

由题目名字可知是猫脸变换
同时原图里exif信息写了(a−10)(15−a)≥0且(b−10)(15−b)≥0,可知a和b是10到15之间的数
使用工具进行爆破还原即可得到flag

好想吃炸鸡 [normal]
不知道是啥文件,放进010看见文件头是8A 51 4F 48
注意到恰好是png文件头89 50 4E 47的十六进制加一,题干所说的加一元换购也可以印证这一块
所以使用010的运算工具对全文件进行十六进制减一操作

可见png文件头
改扩展名为png,在stegsolve中检查可见CRC32值与实际不符

判断改过宽高,把宽高改回来即可看到flag
葵花宝典 [normal]
解压压缩包,有加密葵花宝典,一张数独,一个数学天才txt
从数学天才txt中得到信息,解压葵花宝典的密码是数独斜下对角线的数字,而且结合试炼二可以知道要去4换$
解数独的方法有很多种,这里列举几种:
1. 较慢方法:喂给AI,直接让他解(难度略大,需要合适的提问技巧)
2. 普通方法:从AI得知该数独的名称为Killer Sudoku,于是转为寻找解密脚本(从github中)或网站(https://www.sudokuwiki.org/KillerSudoku.aspx)
3. 数学天才:真正的数学天才不需要花里胡哨的操作,直接手搓(数学比较好的一般10min以内就ok)
4. Misc天才:发现可以爆破出密码,使用自定义字符集123$56789爆破即可(仅需10s)
以上方法均可得到密码295$25$23,解压葵花宝典,发现flag被加密了,试炼三则提示60,可以联想到使用rot47和rot13加密,依次解密即可
人类联合之高塔 [hard]
拿到附件发现有一个jpg图片和一个加密压缩包
jpg图片的exif中写了一个key:amiya,文件尾后还有东西,用UTF-8看可以发现是一段话

发现末尾有很多空格和制表符,是SNOW隐写
提取到txt里面,用前面的key解SNOW隐写得到压缩包密码

解压得到图片,binwalk一下发现图片后面有文件

使用binwalk提取,这里只能用binwalk来提,用foremost会提到文件不全的zip,而文件末尾的文件头是rar的
可以发现rar压缩包中有两个压缩包

而且Sarkaz.zip中的图片和另一个压缩包中的图片的CRC32值是一样的,想到明文攻击
明文攻击后解压压缩包拿到flag
知识点:工具设计目标与工作原理不同
-
Binwalk (主动分析、递归提取)
工作原理:binwalk 的核心是一个文件解析器/爬虫。它使用自定义的魔术字节签名库,递归地、深度优先地扫描整个输入文件(或镜像)。
递归提取:当它识别到一个已知的文件签名(如 RAR! 或 PK 开头的zip)后,它会:
提取该文件。
立即对这个新提取出来的文件,再次从头开始执行同样的扫描和分析过程。
此题中:
扫描原始文件,首先发现了外层的 RAR 签名。
递归进入:提取出这个RAR文件,然后立即对这个RAR文件进行扫描。
在对RAR文件的扫描中,发现了内嵌的 ZIP 签名。
再次递归进入,提取出ZIP文件,然后对这个ZIP文件进行扫描(可能没发现新东西)。
结果:你最终得到了两个被提取的文件:原始的RAR文件和RAR内的ZIP文件。binwalk 清晰地展示了嵌套的层次结构。 -
Foremost (被动恢复、基于“文件雕刻”)
工作原理:foremost 的核心是一个数据恢复工具。它被设计用于从损坏的文件系统或原始磁盘镜像中,“雕刻”出完整的、独立的文件。它一次性地、线性地扫描整个输入数据流,寻找文件头和文件尾签名。
非递归、无上下文:
它只扫描你给它的原始输入数据一次。
它不会对提取出来的文件进行第二轮扫描。
它的目标是找到所有“完整的文件”,并认为这些文件彼此是独立的。
在此题中:
线性扫描原始数据流。
它首先发现了 RAR 的头签名(RAR!)。
关键步骤:为了找到RAR文件的结尾,它需要找到RAR的尾标记或根据结构计算长度。然而,在其扫描路径上,它先遇到了内嵌的 ZIP 文件的头签名(PK)。
冲突与决策:foremost 的算法可能会陷入困惑。一个“文件”内部出现了另一个文件的强签名,这与“独立文件”的预期不符。其默认行为通常是:
保守策略:为了不产生损坏的“雕刻”文件,当检测到内部有另一个文件头时,它可能会提前终止当前文件的雕刻。
结果:它最终可能只提取出那个内嵌的、完整的 ZIP 文件。外层的 RAR 文件因为它被内部的 ZIP 头“打断”,没有被识别为一个完整的、可雕刻的文件,从而被忽略了。
ez_mem_forensic_1 [easy]
使用Volatility2查看clipboard即可
ez_mem_forensic_2 [easy]
使用MemProcFS看系统信息就可以看到账户的SID
ez?_mem_forensic_3 [hard]
使用Volatility2导出mspaint进程,之后使用GIMP进行偏移找到flag

ez?_mem_forensic_4 [hard]
使用Volatility3的hashdump导出密码哈希,之后按照username:rid:lmhash:nthash:::的格式构建哈希
同时MemProcFS的控制台输出中可以看到密码的格式,按照密码格式构造字典
最后使用hashcat或john the ripper进行字典爆破,得到密码

浙公网安备 33010602011771号