2026第十届“楚慧杯”湖北省网络与数据安全实践能力竞赛初赛Writeup周六上午九点把最后一台测试虚拟机快照做完我们三个人的队伍准时打开了线上赛场入口。第十届楚慧杯初赛八小时一屏题目从杂项到二进制像一场限时开放的神秘解法游乐园。赛前群里还有人开玩笑说“第十届了题目应该一年比一年狠”实际打下来确实如此——题量不算夸张但每道题都埋了不少坑静下心能解急躁了就容易翻车。这篇文章不是标准答案集我按我们队伍的真实解题节奏来复盘把每类题目的思考路径、卡壳原因和现场处理方式都整理出来希望能给下次参赛的朋友一点参考。1. 赛前准备与比赛的打开方式1.1 先搞清楚赛制和题目分布楚慧杯初赛是团队赛制每队三个人线上进行时长八小时题目类型大致覆盖杂项、Web、加密、逆向、二进制五个方向。每道题根据解题人数动态计分解出的人越少分数越高所以“抢一血”和“稳拿分”之间要自己权衡。我们队伍的目标很明确先保证所有简单题稳定入手再回头啃高分难题。这里有一个很实用的判断思路动态计分赛里题目分值通常能反映难度梯度。开局不要盲目扑向分值最高的题先把杂项和基础Web题清理干净。这类题目往往思路直接、工具链成熟五分钟到二十分钟就能拿下是整场比赛的“基本盘”。根据我们自己统计如果基本盘能稳住80%以上的题后面的心理压力会小很多也有更多时间专心对付逆向和加密题。另外比赛平台会提供实时提交和排名刷新建议每隔一段时间安排一个人扫一眼榜单。不是为了攀比而是榜单能反映出“哪些题目已经被大量解出”——被大量解出的题大概率是相对简单的题优先处理它们总是划算的。1.2 分工、工具清单和目录规范三个人怎么分工我们用的是“主线互助”模式队员A主攻Web和流量分析负责登录认证类题目、抓包、流量包文件。队员B主攻逆向和二进制漏洞题负责查壳、反汇编、调试。队员C我主攻杂项和加密题同时负责“工具人”角色谁卡住了就协助谁。这种分工不是死的。实际比赛中Web题经常出现半小时无人能解的情况这时候我就会把加密题放一放帮A一起看流量包。反过来逆向题有时候只需要跑一个工具就能出结果B也会顺手把某个杂项题里的文件分离做了。团队赛的核心不是“各管一摊”而是“快速交换信息、互相补位”。赛前我们把常用工具装进了同一套环境里并做了简单版本检查避免现场出现“我的binwalk跑不了”这种低级问题。工具清单如下分类工具用途杂项/文件分析binwalk、010 Editor、Strings、foremost文件分离、十六进制查看、字符串提取流量分析Wireshark、tshark抓包、过滤、追踪流取证分析Volatility、FireEye Memoryze内存镜像分析WebBurp Suite、Fiddler、curl、Python脚本抓包改包、编码解码、自动化请求加密CyberChef、Python Crypto库、RsaCtfTool编码识别、加解密、RSA攻击逆向IDA Pro、Ghidra、x64dbg、UPX静态分析、动态调试、脱壳二进制pwntools、GDB、checksec漏洞利用、防护机制检查工具不是越多越好关键是每个工具你都知道它“最适合处理什么问题”。比如binwalk对付的是文件拼接和隐写但面对合法的图片嵌入有时用StegSolve逐层翻看更直观。工具选型也是一个信息收集的过程选对了工具题就解了一半。我们同时约定了一个简单的目录规范每个题一个文件夹命名格式是“题目名_选手ID”里面放题目文件、临时脚本、输出结果和writeup草稿。这样赛后复盘时不需要“考古”就能知道当时每一步做了什么也为写正式writeup节省了大量时间。2. 开局热身杂项与流量分析的解题思路2.1 杂项题三板斧分离、隐写、弱编码比赛开始后我做的第一件事是打开所有杂项题附件快速看一遍文件类型。杂项题几乎是CTF里的“开胃菜”但它们一点也不简单因为出题人最喜欢在这种题里藏“自以为很隐蔽”的信息。杂项题最基本的三板斧是文件分离、隐写分析和编码识别。文件分离是第一步。拿到一个附件先用file命令看真实类型再用binwalk扫描有没有嵌套文件。常见情况是一张正常的PNG图片头部是PNG签名但文件尾部藏着ZIP压缩包或者中间夹着另一个文件。用binwalk-e参数可以直接提取提取后逐个检查新文件。如果提取出来的是一个加密压缩包那把压缩包文件名、注释、伪加密标志位都看一遍——很多出题人喜欢在这些地方藏密码。隐写分析是第二步。图片隐写有很多种最常见的是LSB隐写最低有效位嵌入信息可以通过StegSolve逐层查看图片通道发现异常。还有一种情况是图片的元数据里带信息比如EXIF注释、作者字段、GPS坐标等。我们这次遇到一道题图片宽高比明显不对用010 Editor打开后发现IHDR字段里的宽高被改过修改回去之后图片底部多出了一段二维码扫码才拿到flag。这种改宽高的操作是隐写题里的常客原理很简单图片像素数据没有变只是显示尺寸被缩小导致部分内容显示不出来。编码识别是第三步。拿到一段看起来很诡异的字符串先判断它是什么编码。Base64的特征是大小写字母加数字加/且通常有等号填充Hex的特征是只有0-9和a-fURL编码的特征是大量%xx。看到一个编码串别急着猜先用工具自动识别一下。我们习惯把可疑字符串丢进CyberChef用“Magic”功能直接让工具尝试识别各种编码和压缩方式。这节省了大量手动尝试的时间。说一个细节很多新手只会对“完整的一段密文”做base64解码却忽略了藏在文件名、响应头、甚至图片属性里的片段。杂项题的本质是“信息收集”把每个可见但不起眼的角落都翻一遍往往比高深技巧更有用。2.2 一道内存取证题的完整推导过程这次初赛有一道内存取证题附件是一个raw格式的内存镜像文件题目描述很简单“请从内存中找到隐藏的信息。”这种题在CTF里越来越常见因为内存里能藏的东西太多了。我们先拿Volatility跑了一轮基础分析。第一步用imageinfo确认镜像的操作系统版本和profile这一步出错后面所有插件都会失效。确认profile后用pslist列出进程列表重点看有没有可疑进程——比如名字看起来像系统进程但路径不对或者名字本身就是一串随机字符。我们这次发现了一个svchost.exe的子进程路径在临时目录下面明显是伪造的。接着用netscan查看网络连接发现该进程有外联记录连接目标是外部IP。这时候就可以判断这是个恶意进程大概率是下载者或者木马。我们dumpmem把这个进程的内存导出来用Strings提取字符串在内存里发现了powershell命令行痕迹和一个经过Base64编码的文本块解码后就是一段关键信息。这一步正好契合杂项题的思路从内存里“分离出”可疑进程“提取”出关键数据然后“解码”得到结果。取证流程本身并不复杂难的是在大量内存数据里快速定位可疑点。我们的经验是优先看进程路径、网络连接、命令行参数这三个点没有明显异常再扩大搜索范围。2.3 流量包里的“反常”信号流量分析题我们遇到的是一份HTTP和DNS混合的pcap文件。Wireshark打开后一开始看起来都是正常的HTTP请求大多是访问静态资源。直接过滤http.request看了看也没有明显的POST请求或敏感路径。这种时候不能只盯着HTTP层。我们先用tshark -r 文件 -Y dns -T fields -e dns.qry.name把DNS请求的域名全列了出来发现有一串域名非常不规则像是一组随机字符串拼接而成。这种形式的域名通常是某种伪造的DNS隧道。再看HTTP响应有一两个响应头里携带了自定义字段字段值看起来像Base64。我们把所有可疑字段值提取出来用CyberChef解码发现里面混着一段加密的文本再根据流量包里出现的密钥字符串做了一次异或运算最终解出flag。这类流量分析题的核心就是“找反常”如果一个流量包里大部分数据都符合预期模式那么你的注意力应该放在那些不合群的部分——不合群的请求、不合群的响应头、不合群的字符集它们往往是解题的钥匙。3. Web与加密题边界试探与脑洞碰撞3.1 Web题先看功能点再想漏洞面Web题我们分到的是一套在线博客系统功能点包括用户注册、登录、发布文章、上传头像、评论等。这种题第一反应是找注入点但我们测试了几个输入框都没有发现明显的注入特征于是转换思路看上传功能。上传头像这个功能点很关键。我们上传一个正常的PNG图片然后用Burp Suite改包把文件内容替换为包含PHP代码的图片马同时修改Content-Type绕过前端限制。结果服务器返回“文件类型不允许”看起来后端做了后缀白名单校验。接着尝试双写后缀、大小写绕过、上传.htaccess等常见手法最终在文件名中加入合法图片后缀加.php利用解析特性让服务端把文件当作PHP执行。整个过程就是不断试探的边界过程每得到一次响应就是在告诉我们可以继续往哪个方向走。Web题的通用思路是先梳理功能点每个功能点对应一个可能的漏洞面。登录框对应SQL注入、弱口令、暴力破解上传功能对应文件上传绕过文章编辑对应存储型XSS查询功能对应注入或命令执行API接口对应未授权访问或SSRF。列完表格之后再逐个测试比漫无目的地乱扫高效得多。3.2 加密题先把特征认出来加密题我们遇到了两道比较有意思的。第一道是比较基础的替代密码。密文是一串英文单词但词频和正常英文差异很大。先尝试ROT13发现结果不是英文再尝试凯撒暴力破解也没有明显结果。这时候用quipqiup这样的词频分析工具跑了一遍很快得出明文。替代密码的解题核心是“频率分析”出题人不会用太长文本但足够让工具自动分析出来。第二道是RSA题题目给了公钥文件和密文文件。先用openssl rsa -pubin -in pub.pem -text -noout查看模数n和公钥指数e发现e非常大。大e往往意味着d比较小属于低解密指数攻击可以用Wieners Attack破解。我们直接调RsaCtfTool一键跑出私钥再用私钥解密密文就拿到了flag。RSA题在CTF里出现频率高主要就是考对常见攻击场景的熟悉程度——共模攻击、低加密指数、低解密指数、p和q相近、已知部分明文等等。每道题先看参数参数特征直接指向攻击方法。4. 二进制与逆向静态分析定思路、动态调试出结果4.1 静态分析的关键节点逆向题我们遇到一个Windows下的PE文件没有加壳直接用IDA打开看反汇编代码。第一眼的印象是逻辑很清晰程序接收一个字符串输入经过几轮变换后与内存中的目标字符串比对相等则输出成功。静态分析的关键节点有三个字符串窗口、函数列表、关键的判断跳转。先用Strings提取程序里的所有字符串发现目标字符串和其他提示信息然后在IDA的函数窗口里找入口函数和主逻辑函数最后顺着主逻辑逐行看反汇编找到最终比对的指令。我们遇到的具体逻辑是一个自写的加密函数输入字符串的每个字节先与一个固定常数异或然后做了一次查表替换。这个查表动作在反汇编里表现为从数据段取字节数组再进行索引运算。找到替换表后我们把目标字符串反向替换回去就得到了正确的输入也就是flag。整个过程没有用到调试器纯静态分析就完成了。4.2 动态调试的时机另一道题目光靠静态分析不够逻辑里有一个反调试检测运行时会检测当前环境如果发现是调试器就会走错误分支导致程序退出。这时候就需要用到动态调试。我们用x64dbg打开程序先在入口点下断点然后按F8单步走等执行到检测函数的位置。检测函数通常是一段通过API获取调试状态或者检测时间差的代码我们先在可疑调用处下断点再修改跳转条件强制跳过检测分支让程序进入正常逻辑。动态调试的核心是“找到关键分支并修改行为”。CTF题目中的反调试往往很浅不会做复杂的多线程检测或反虚拟机所以只要耐心单步追踪总能找到那个影响全局的跳转指令。遇到这种题不要怕开调试器但也不要一上来就调试——先静态看明白整体逻辑再用调试器辅助处理动态部分效率最高。5. 现场翻车与效率工具复盘5.1 我们踩过的坑这次比赛我们一共翻了三次明显的车每次翻车都浪费了不少时间写出来供大家避坑。第一个坑解压密码其实就在文件名里。题目附件是一个ZIP压缩包注释区域和压缩包内文件名都正常我们试了好几个常见的弱口令都没开。最后队员A无意间发现文件名中的一串数字刚好可以当解压密码。这个属于典型的“灯下黑”——信息就在你眼前但因为它是文件名的一部分你反而忽略了它。第二个坑判断文件类型时只信了扩展名。有个附件叫flag.txt我们直接用文本编辑器打开内容是一段乱码。后来用file一看才发现它其实是一个PNG图片文件头被改成文本文件了。扩展名经常骗人任何附件先跑一遍file命令这应该是肌肉记忆。第三个坑RSA公钥解析时用的openssl命令参数写错导致没有输出我们以为公钥文件有问题换了工具。后来才发现只是少了一个参数。工具命令不熟这件事在现场很容易放大成“题目有问题”的错误判断。赛前把常用命令练熟比多学一百个技巧更有用。5.2 提高团队协同效率的几个细节我们队伍能稳定解题很大程度靠的是“协同效率”。这里分享几个好用的小细节一是共享文档实时记录。我们建了一个简单的Markdown文档每个人做到哪一步、卡在哪、尝试过什么方案随时同步。这样即使有人中途去处理另一道题回来也不需要从头重新理解题目。二是统一脚本路径。所有临时Python脚本统一命名加功能说明比如find_magic_bytes.py、brute_rot.py避免出现“final_v2_最终版”这类混乱命名。三是定期对表。开赛每小时看一下进度如果有人长时间没有产出就主动调整分工。现场最怕的就是“一个人卡住其他人不知道”信息透明比个人能力强弱更影响整体成绩。6. 赛后复盘与几个坚持到现在的习惯6.1 赛后把没做出来的题重新过一遍比赛结束后的第二天我们把所有没解出来的题目重新从赛题包里翻出来对照官方赛题考点和网上公开的讨论一步步重新推导。这个环节比比赛本身还重要。比如有一道Web题我们当时在文件上传那个点停留了太久其实真正的入口是另一个接口的目录遍历。事后复盘时我们才意识到当时如果先看其他接口就不会卡那么久。复盘时重点不是记住答案而是记“为什么没想到”。是信息收集不全还是对某类攻击特征不敏感把这些原因写下来下次遇到相似题目时第一时间想到对应的思路这就形成了真正有效的个人经验。6.2 平时练习的方式现在我们的日常练习方式很简单每周固定刷一定量的CTF题目覆盖杂项、Web、加密、逆向四个方向。刷题平台各有特色有的偏向Web实战有的偏向逆向。练习时不追求数量每个题都要求自己写出完整writeup哪怕只有三行字也要写明思路——为什么从这个方向考虑用了什么工具卡在哪里最后怎么出来的。另外我们还养成了一个习惯把比赛过程中用过的一行命令、一个脚本、一个报错修复都记到自己的“工具笔记”里。时间长了这就是一本完全属于自己的威胁检测和漏洞分析速查手册比任何公开教程都好用。6.3 一些在现场尝到甜头的小技巧最后分享几个实际操作中觉得很管用的小技巧。遇到不确定的字符串先不要手动解码不管三七二十一丢进CyberChef跑一次Magic看到图片先看宽高宽高不对就改看到文件先看文件头不要相信扩展名遇到Web题先枚举目录和接口再重点测试参数遇到加密题先看密文长度和字符集判断编码类型后再选择攻击方式。这些都是很零碎的点但恰恰是这些零碎的点在八小时的紧张比赛里帮我们省下了大量试错时间。比赛输赢不是看谁会的技巧多而是看谁踩的坑少。把这些细节变成肌肉记忆比赛就容易了很多。
企业数字化 ERP 产品动态
相关推荐
Neo4j社区版5.24.2离线部署实战:从tar包解压到远程访问与数据导入 简介:Neo4j社区版5.24.2的Unix平台tar.gz安装包,面向需要构建图数据模型、处理复杂关系网络的开发者与教学研究人员。相比关系型数据库,它以节点和关系组织数据,配合原生Cypher查询语言,在社交网络、推荐系统、欺诈检测… · 2026/9/25 12:25:46
reverse3逆向题详解:Base64变体与逐字符偏移还原 刷BUUCTF逆向题的时候,reverse3这道题应该被很多人标记为“入门必刷”。名字叫reverse3,难度也确实不高,但考点很典型:自定义Base64变体加逐字符下标偏移。整道题拉通下来,其实就是把“查壳、静态分析、算法识别、脚本… · 2026/9/25 12:25:39
5G NR SIB2详解:小区重选参数、信令分析与调优实践 简介:这份文档系统讲解5G(NR)网络中系统消息SIB2的构成与主要字段,面向5G网络优化工程师、运维人员及通信专业学习者。SIB2属于开放系统信息(OSI),承载同频、异频和异系统小区重选所需的关键参数,其发送分为… · 2026/9/25 12:25:21
PLSQL Developer连接Oracle报OCI.dll错误的完整解决方案 简介:本资源是面向Oracle数据库初学者与开发人员的PL/SQL Developer连接实战配置包,聚焦解决轻量级客户端环境下高效连接远程Oracle数据库的核心问题。压缩包内含45个文件,涵盖20个关键DLL动态库(如oci.dll、oraociei11.dll&#… · 2026/9/25 13:06:08
LeanCTX配置与故障排查终极指南:每一把调优杠杆与doctor诊断清单 LeanCTX配置与故障排查终极指南:每一把调优杠杆与doctor诊断清单 【免费下载链接】lean-ctx LeanCTX — Context Intelligence for AI systems. 项目地址: https://gitcode.com/gh_mirrors/le/lean-ctx
LeanCTX(Lean Context)是一款本… · 2026/9/25 13:06:02
MicYou主题定制指南:Material 3动态取色、袖珍模式与多语言一键切换 MicYou主题定制指南:Material 3动态取色、袖珍模式与多语言一键切换 【免费下载链接】MicYou MicYou is a powerful tool that turns your Android device into a high-quality microphone for your PC. 项目地址: https://gitcode.com/gh_mirrors/mi/MicYou … · 2026/9/25 13:06:02
n8n:开源自动化工作流平台自托管部署与实战 这一期“一天一个强大的网站”不打算推荐一个你打开收藏就再也不用的效率工具,而是推荐一个真正值得跑在你自己服务器上的开源项目:n8n。如果你平常写代码,一定遇到过这类场景:外部系统回调了一个业务事件,需要清洗、转… · 2026/9/25 13:05:56
DeepSeekHarness(番外01):MCP与Skill配置不再手改YAML,一条命令接入15个服务器 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 13:05:49
Windows 10麦克风权限失效的三层根因与修复指南 1. 这不是权限开关失灵,而是Windows 10隐私架构的“默认拒绝”逻辑在生效 你点开“设置→隐私→麦克风”,明明把“允许应用访问你的麦克风”滑块拉到了最右边,可Zoom、腾讯会议、甚至系统自带的语音识别依然提示“麦克风被禁用”;… · 2026/9/25 13:05:43
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37