“轩辕杯” 云盾砺剑 CTF 挑战赛 2025

“轩辕杯” 云盾砺剑 CTF 挑战赛 2025
Aristore赛后复现的题目标题前用🔁标注。感谢群内大佬的解惑。
Misc
音频的秘密
Chllenge
音频也会有秘密吗?
Solution
一开始还以为是摩斯电码,在这里耗了很长时间(好气)
用 SilentEye 提取隐写文件,sound quality 选 low
拿到加密压缩包
爆破得到密码 1234
LSB 隐写拿到 qzvk{Ym_LOVE_MZMP_30vs6@_nanmtc_q0i_J01_1}
结合这个不难猜到是维吉尼亚加密,密码就是 lovely
1 | flag{No_AAAA_BBBB_30ao6@_cccyyy_f0k_Y01_1} |
Terminal Hacker
Challenge
黑客的世界,从敲下第一个命令开始…… 进入你的终端,尝试找出那串藏在系统深处的字符串。 附件: hacker.exe 找到隐藏的 flag。 flag 格式: flag
Solution
先用 pyinstxtractor 解包,然后用 pycdc 反编译
1 | flag{Cysay_terminal_game_hacked_successfully} |
数据识别与审计
Challenge
公司管理员在商品测评汇总平台中的文件服务器,存放了一些商品相关或者用户上传的文件数据,包括 TXT,图片,PDF,音频数据。在各种数据中,可能泄露了一些敏感信息或者某些用户插入了恶意代码到 各种类型数据中,每个类型有 5 个。请选手对于各种数据类型的文件进行审计,找到带有敏感信息或者恶意代码的数据文 件,并将文件名列出来。flag 为 md5 (文件名排序)
排序规则:TXT > 图片 > PDF > 音频数据,且数字 > 大小写字母 例如:提取的答案是 1a.txt,q5.txt,Qa.txt,aa.pdf,b.png, 则 flag 为 flag {md5 (1a.txt,q5.txt,Qa.txt,b.png,aa.pdf)}=flag
Solution
TXT
先合并文件
1 | import os |
FiBRFFnG.txt
9h0zQJok.txt
T0BPOXDY.txt
Me4CoMw7.txt
gWa0DiTs.txt
1 | 9h0zQJok.txt,FiBRFFnG.txt,gWa0DiTs.txt,Me4CoMw7.txt,T0BPOXDY.txt |
图片
看了所有图片的属性,甚至怀疑过借着透明图层隐藏信息,都失败了
不过后来转念一想题目提到了恶意代码,于是猜测是文件尾的一句话木马,写个脚本检测一下(一开始是找的 php
,不过由于出来的结果只有两个符合标准并且都带有 cmd
,所以把这里的关键词改为了 cmd
来扩大范围)
1 | import os |
输出如下
1 | 100uc1uh.png |
逐个检查文件尾即可得到答案
1 | a4ijc0fu.png,b7aykkl9.png,lhf82t3d.png,sofhifed.png,wxrozxe3.png |
用 Adobe Acrobat DC 一次性全部打开,发现里面有部分 PDF 存在 JS 脚本,弹窗显示了 XSS in PDF
,于是用脚本检测可疑的 PDF 文档
1 | import os |
得到输出
1 | bVKINl.pdf |
逐个打开发现 DzVuCy.pdf
不存在脚本,因此这部分的答案就是剩下的 5 个
1 | bVKINl.pdf,hnPRx1.pdf,mIR13t.pdf,OGoyOG.pdf,rSG2pW.pdf |
WAV
用 AU 打开,按采样率排序就会发现这几个音频的采样率不一样
1 | Bd2IYe3.wav,bjVwvcC.wav,H0KDChj.wav,ou9E9Mh.wav,UEbzH4X.wav |
拼接
1 | 9h0zQJok.txt,FiBRFFnG.txt,gWa0DiTs.txt,Me4CoMw7.txt,T0BPOXDY.txt,a4ijc0fu.png,b7aykkl9.png,lhf82t3d.png,sofhifed.png,wxrozxe3.png,bVKINl.pdf,hnPRx1.pdf,mIR13t.pdf,OGoyOG.pdf,rSG2pW.pdf,Bd2IYe3.wav,bjVwvcC.wav,H0KDChj.wav,ou9E9Mh.wav,UEbzH4X.wav |
1 | flag{234ed8ef5421c5e559420dbf841db68f} |
🔁一大碗冰粉
Challenge
你是大黑客,这次你入侵了 icej3lly 的个人电脑,准备跟踪他的行踪,但是 icej3lly 好像并不害怕⌓‿⌓,还跟你玩起了加密游戏,甚至把提示都给你了ƪ(˘⌣˘)ʃ。但当你正在查看桌面上的秘密文件和提示时突然断电了,只留下了这个内存镜像,多疑的你一定会有所发现吧˃ʍ˂
Solution
在桌面发现压缩包 secret.zip
然后发现它是完全损坏的
在桌面 ctf
文件夹中发现 hint.txt
,得到提示 doyouknowplaintextattack
vol3 把这个压缩包导出
打开发现要密码,结合前面的提示使用明文攻击,很显然这里用正是前面得到的 hint.txt
,经过比较 CRC 值证实了这一猜想
明文攻击得到三个密钥 75a1a160
d4d2cd93
ebdc5c33
,然后从解压得到的 mimi.zip
解压得到疑惑吗?疑惑就对了.search
疑惑
谐音异或
,解密密钥是 search
1 | def xor_decrypt(data: bytes, key: str) -> bytes: |
从文件头判断解密得到的二进制文件时压缩包
修改后缀为.zip
后尝试解压发现要密码,扔随波逐流发现是伪加密并修复了
解压得到图片 flag.jpg
LSB 发现 flag
接下来是 OSINT
抖音搜索找到这家店在连云港市海州区路南街道陇海中路盐河巷
1 | flag{江苏省连云港市海州区陇海步行街} |
🔁哇哇哇瓦
Challenge
有款游戏越打越饥饿就是电脑瓦罗兰特,这里没有人给你压力,全是妹妹加油打气,我很清楚你没什么实力但是瓦妹不离不弃,大妹子声甜技术又好,少萝御姐概率不小…
Solution
发现 flag 的前半部分 flag{Val0rant_1s_th3_
,还发现一藏了一个 zip 压缩包
binwalk 把压缩包提出来,解压拿到提示密码是场上存活的两位英雄的英文名字连起来(区分大小写) 什么?你不知道密码在哪用?!那我问你,隐写都知道,明写看不见?拿你瞄准时的眼力仔细观察观察图片中的角落吧
右下角发现明显 LSB 隐写痕迹
顺序改为 BGR,除了透明图层以外的全选,MSB 优先
发现压缩包的文件头 PK
,导出来用脚本反转
1 | input_file = "瓦学弟天天开心.bin" |
发现解压要密码,根据前面的提示搜索发现两位英雄的名字分别是 Gekko 和 Yoru,经尝试得到解压密码为 GekkoYoru
得到 flag 的后半段 best_FPS_g@me!!}
1 | flag{Val0rant_1s_th3_best_FPS_g@me!!} |