【CatCTF 出题人WP】CatJump解题思路
前言
出题5天,被秒半小时,当时做环境的时候数据忘了清干净,导致被非预期了,原本挺有趣的题目没多少人玩到。
感兴趣的师傅后续也可以试试原有的解题思路,希望可以给各位有些帮助。
出题灵感来源
- 一直在玩黑苹果,虽然11代intel已经是黑果的绝唱了,但中间的一些思路倒是很有意思的。
- 安装黑果的重点就在于硬件能否被苹果系统识别,因此就有了本题,大致就是通过检测系统的硬件配置,实现一个简单的macOS检测机制。
- 选手需要通过oc或者其他方式修改nvram中的内容,让程序识别到该系统的某些配置。
正文
当时预设了2种解题方式
解题思路1
- 拿vmdk文件,提取其中的可执行文件进行分析,最终锁定openssl解密的部分,利用题目描述中的「cat_jump」进行解密获得flag。
解题思路2
拿到vmdk,进行仿真挂载,但发现该磁盘无法在ubuntu等预设中进行挂载,因为这里用的是Alpine Linux,并且是Alpine是UEFI,Vmware中一般都是bios引导启动,如果是vmware workstation的话需要在创建完毕后,高级中设置为UEFI启动,即可进入游戏。
进入游戏后,这里有个小脑洞,一般的游戏都会有「退出」模块,一般为「q」,但这里用的是「]」,退出后即可发现读取文件失败了。
读取的是nvram中的一个特定变量,如无法检测到这个变量的话,即使进了系统登录界面也无济于事。
通过opencore做一个引导驱动,在nvram中写入报错中的特定变量名和变量值,将该引导挂载到虚拟机中,我这直接用的U盘创了个ESP分区,把EFI丢进去了。
如果U盘是USB3.1的记得改下兼容性启动到固件后,选择opencore启动,这样EFI引导就是走的opencore,模拟出的nvram也就能获取到。
最终进入启动界面即可获取flag。
解题思路3(非预期)
- strings cat_jump_clean.vmdk | grep CatCTF{
- 010编辑搜索
- 取证大师提取原始数据
- 记事本打开
- .....
总之就是磁盘数据没清干净,被一把梭了。