CTF竞赛中MISC类题目解题实践与分析
PDF隐写:从文档格式突破获取flag
题目提供了一个看似空白的PDF文件,仅包含一张无关图片。常规查看无有效信息,但通过文档格式转换尝试,将PDF转为Word文档后,隐藏内容自动显现,直接得到flag。此类题目考察对办公文档底层结构的理解,某些编辑器在转换过程中会还原被隐藏或特殊编码的文本层。
Ext Alpha编码识别:非常规文本编码的处理
附件为一个乱码文本文件,使用Hex Editor或binwalk均无法识别有效结构。关键在于题目名称"Ext Alpha"本身即为线索。使用Microsoft Word打开该文件时,程序提示字体编码异常,并允许手动选择编码格式。在编码列表中选择"Ext Alpha"后,原始flag明文成功显示。此题强调对冷门编码格式的认知及利用办公软件自动修复机制的能力。
dddns:基于DNS隧道流量的取证分析
题目给出一个pcapng流量包,其中全部为DNS请求与响应。观察到查询类型包含大量TYPE NULL记录,且子域名长度固定、频率极高,符合DNS隧道特征。结合根域b.dns.xibai判断其使用iodine工具建立隐蔽通道。通过自定义Python脚本解析DNS请求中的base32编码数据段,提取并重组出嵌入的原始TCP流,保存为新的PCAP文件。使用Wireshark打开新文件,追踪TCP流即可看到传输的flag内容。
签到2:基础编码变换的综合应用
提示"Base64÷4"具有误导性,实际并非Base64操作。给定字符串经Base64解码失败,转而尝试十六进制(Hex)解码。将输入视为Hex字符串转换为字节流后,直接输出可读文本,flag清晰呈现。此题考验选手对多种编码形式的敏感度以及排除干扰信息的能力。
normal_png:PNG结构篡改实现视觉隐藏
图片文件表面正常,但binwalk扫描发现潜在数据嵌套。使用十六进制编辑器检查其IHDR块,发现高度值存在可疑低字节。原高度字段为0x036B(875像素),修改为0x046B(1131像素)后重新加载图像,拉伸区域显示出原本被裁剪隐藏的flag文字。这种技术利用图像解析器对尺寸变更的容错性,实现简单却有效的信息隐藏。
BBB:异或加密与Base64组合逆向
压缩包内含一段Python加密代码,注释中为密文。分析可知加密过程为:生成1–100之间的随机密钥k,对明文每个字符进行ASCII值异或k运算,结果转为字节串后执行Base64编码,最后整体反转得到密文。
import base64
def decrypt(ciphertext):
decoded = base64.b64decode(ciphertext[::-1])
for k in range(1, 101):
result = ''.join(chr(b ^ k) for b in decoded)
if 'flag{' in result:
return result
return None
cipher = '=Q2Lh8SLusyfvg3K4pXIt0iKrwyfgwyLrwXfhESL/pyLgImf4V3f'
print(decrypt(cipher))
运行上述脚本爆破密钥,当k=42时输出正确flag:flag{963f488de2659f523448ca2a6f274686}。
长安没有秋天:双重密钥与空格隐写结合
损坏的ZIP文件包含两个线索:注释key2{736e6f772a32}解码为"snow*2";使用二进制编辑器查看文件头,在ZIP目录结构前发现隐藏字符串key1{666c61672a33},解码得"flag*3"。推测密码为"flagflagflag",成功解压出空白txt文件。
文件看似为空,实则含有不可见字符。结合"snow*2"提示,推断使用SNOW工具进行空格/制表符隐写。使用SNOW命令行工具执行:
snow -C secret.txt
从文件尾部提取出隐藏信息,获得最终flag。
黑客入侵:Webshell流量行为分析
多层压缩包解压后得到网络流量包。过滤HTTP协议,发现攻击目标IP为192.168.68.128:9080。追踪TCP流,查找上传webshell的相关POST请求。依据提示需定位"黑客最后使用的木马文件名",找到编号最大的HTTP请求,其上传路径中的PHP文件名为tlswslhaoev4lva.php。
进一步搜索常见Webshell管理工具的通信特征,发现疑似Godzilla(哥斯拉)客户端连接行为。根据题目要求,计算该工具名的MD5哈希值:
md5("godzilla") = fe7c3416a2ace0d97e4029e77368c5ab
最终构造flag:flag{fe7c3416a2ace0d97e4029e77368c5ab}。