从伪加密到仿射解密:LitCTF 2023 easy_shark挑战全解析

1. 初探easy_shark:从“加密”压缩包说起

那天晚上,我像往常一样打开CTF平台,准备找点新题目练练手。LitCTF 2023的“easy_shark”这个题目名字一下子就吸引了我——“easy”听起来很友好,“shark”又暗示了和Wireshark网络分析有关,感觉是个既能复习基础又能学到新东西的好机会。我兴冲冲地下载了附件,结果双击解压的瞬间,一个熟悉的密码输入框弹了出来。我心里咯噔一下:“说好的‘easy’呢?怎么上来就要密码?”

相信很多刚接触CTF的朋友都遇到过这种情况,一个压缩包摆在面前,却不知道密码是什么。这时候千万别急着去网上找什么“暴力破解”工具,或者盲目尝试常见的弱密码。在CTF比赛中,尤其是像LitCTF这种正规赛事,题目设计通常都是有逻辑、有线索的。一个需要密码的压缩包,其密码要么藏在题目描述、文件名等明面信息里,要么就藏在压缩包本身的结构里。对于“easy_shark”,我们显然要先从后者入手。

我的第一反应是把这个压缩包用十六进制编辑器打开看看。这里我习惯用010 Editor,当然你用WinHex、HxD甚至Notepad++配合特定插件也行。用010 Editor打开那个压缩包文件后,我直接按Ctrl+F搜索关键字“50 4B”,这是ZIP文件格式的魔数(Magic Number),也就是文件头的标志。找到文件头后,我开始仔细查看其后的各个文件头区块(Local File Header)。在ZIP格式中,每个被压缩的文件前面都有这样一个头,里面包含了文件名、压缩方法、CRC校验值等重要信息,其中有两个1字节的字段特别关键:frflags(一般加密标志)和 deflags(详细加密标志)。

正常情况下,一个未加密的ZIP文件,这两个字段的值都是0x00。而当我滚动查看时,我发现这个压缩包里文件的这两个字段被修改成了0x09。这个“0x09”就是典型的“伪加密”标志。什么是伪加密?简单来说,它并没有真正用算法加密文件内容,只是修改了ZIP文件头里的这两个标志位,让解压软件误以为文件被加密了,从而弹窗索要密码。实际上,文件数据本身是完好无损、未经加密的。这就像给一扇没锁的门贴了个“此门已锁”的标签,骗过了看门人(解压软件),但只要你把标签撕掉(修改回0),门就能直接推开。

注意:伪加密在早期的一些CTF题目和“保护”压缩包中很常见,但现在很多现代解压软件(如7-Zip的新版本)已经能自动识别并忽略这种伪加密标志。所以如果你用某些软件直接解压成功了,也别奇怪,题目考察的正是对这种古老“技巧”的原理认知。

既然找到了症结,解决起来就简单了。我在010 Editor里,把找到的所有frflagsdeflags的值从0x09逐个改回了0x00。这里一定要细心,确保修改的是正确位置的值。改完后,我点击“File” -> “Save As”,将文件另存为一个新文件,比如easy_shark_fixed.zip。再次双击这个新文件,果然,那个烦人的密码输入框消失了,我顺利地把里面的文件解压了出来。第一个关卡,通过!这个过程虽然简单,但它教会我们一个重要的CTF思维:遇到障碍,先别想复杂了,从文件格式本身、从最底层的字节数据开始分析,往往能发现最简单的突破口。

2. 潜入数据海洋:用Wireshark捕捉流量中的秘密

解压出来的文件是一个后缀名为.pcapng的文件,这是Wireshark网络封包分析软件的标准文件格式。看到这个,题目的后半部分“shark”就对上号了。Wireshark这款工具对于网络安全和CTF选手来说,就像外科医生的手术刀一样重要,它能让我们像看慢动作回放一样,仔细审视网络中流过的每一个数据包。

我打开Wireshark,载入这个pcapng文件。界面瞬间被密密麻麻的数据包列表填满,各种协议、源地址、目的地址、长度信息看得人眼花缭乱。新手面对这一片“数据海洋”很容易发懵,不知道从哪里下手。这里的关键在于 “过滤” 。Wireshark的强大之处就在于它提供了极其灵活的过滤语法,能帮助我们快速聚焦到可能包含flag的流量上。

考虑到CTF题目中,flag信息经常通过Web服务(HTTP)来传输或泄露,我的第一个过滤器就是直接在过滤栏输入:http。回车之后,界面清爽多了,只剩下HTTP协议相关的数据包。我挨个查看这些数据包,重点关注那些包含“响应数据”(通常是服务器返回给浏览器的内容)的包。在Wireshark中,你可以右键任何一个数据包,选择“追踪流” -> “TCP流”或“HTTP流”,这样就能以更直观的、会话

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值