2026软件系统安全赛-misc
本文最后更新于 2026年4月9日 晚上
前言
这个比赛水温真的很高。唯一一道简单点的misc从开赛一直卡着我,最后还是依靠GPT神力梭出来的。。。赛后一直耿耿于怀,现在必须亲手解决它。
来拿题目附件👇
📥 题目附件下载
文件名:618057b9-f140-4e4a-9351-286ddc1d57d4.zip
大小:364 KB
点我下载
题解
解压附件拿到一个未知文件steganography_challenge,看名字就知道是隐写挑战,至于隐写在第几层…你且解着。
扔进010 editor
看到一堆F开头,加上离得不远的PNG标识,聪明的宝宝们应该已经有思路了。直接拉到底,找到PNG标准结尾AE 42 60 82————
唉?末尾有个layer2.png的可读文本提示?那不正好印证了判断,直接从89 50 4E 47开始,取到AE 42 60 82,保存为一个完整的png。
然后你会发现这个png根本无法显示。
不信邪的话,可以带上末尾的附加信息,从png头开始截到最后再保存为png。
这时候可以正常打开,但很快你就会发觉它的诡异之处。首先它看起来是这样的
有点崩坏对吧?到这还勉强可以接受,那等到开始对它执行各种misc扫描工具这一步时,各个工具开始疯狂爆红呢?stegsolve之类的工具也是根本用不了。
此时有宝宝们发现不对劲了,这似乎是一条错误的道路。你猜对了。
重新回到010界面,观察这个文件的前几字节:
FF FF FF FF 27 1C
你说有没有一种可能,前面那一堆FF就是人为修改后的结果。跟我们熟悉的7z魔数比较一下:
37 7A BC AF 27 1C
后面五位都是一样的,很难说这不是作者故意留下来的线索。
将文件头改为37 7A BC AF 27 1C,保存为.7z文件,Bandizip打开。
分离出正确的layer2.png之后,就可以用正常的方式检查隐藏信息了。
检查到LSB隐写时,用Stegsolve打开,通道全选零。
发现藏了一个zip,里面还嵌套着一个flag.zip。那还说啥了直接save bin,保存为123.zip。
直接打开会报错。别慌,右键选Bandizip打开。
看来藏的东西还挺多。先解压出123,尝试打开各个小文件夹,发现都要密码。
寻找其他提示信息无果后,注意到pass系列的六个zip内含的data都具有相同且较小的字节数,尝试CRC32爆破。注意要内部文件的CRC,不是压缩包的。
打开WSL进入题目目录,运行下方指令一次性获取六个CRC32
1 | |
得到CRC32分别为
1 | |
编写一个专门用来爆破的脚本
1 | |
运行,等几分钟就能得到密码
用这个密码c1!xxtLf%fXYPkaA去解锁flag.zip,得到文本文件。打开只有一句话flag is here,但是左下角显示整整有348个字符,不用想,零宽字符隐写。
ctrl+A全选复制,先扔进Sublime Text查看零宽字符类型,发现只有200B和200C两种。再到网站http://1o1o.xyz/html/ZeroWidthSteg1.html进行零宽字符的解密。
按照我给的图示进行操作:
解密后得到hidden_data。加个扩展名变成hidden_data.txt,然后记事本打开得到flag。
dart{bf4100d9-cc8d-48f6-a095-54cbfad189e1}