CTFWeb、Crypto、Misc题库刷题实战笔记从入门到系统化备考CTF圈子里一直有个说法Web、Crypto、Misc是三大“地基”不管你以后专攻Pwn还是Reverse这三块基本功都得过硬。不少刚入门的同学打开题库就蒙了——题目太多、方向太杂、工具链陌生“从哪里开始刷”成了第一道坎。我这些年带过不少新人也断断续续打了十几场线上赛今天这篇就把CTF题库里Web、Crypto、Misc三个方向的核心考点、刷题路径和避坑经验一次性讲清楚。内容不会太抽象基本都是能直接上手的实操总结适合刚接触CTF的朋友也适合准备个人赛、想系统刷题的同学。1. 整体思路先认清三个方向的学习曲线与相互关系很多人一开始就犯一个错误打开题库What题目都想做今天刷一道Web明天碰一道Misc后天又去解Crypto的RSA结果哪个方向都没形成体系遇到稍微绕一点的题就卡住。CTF刷题这件事本质上跟练武一样招式再多也得从扎马步开始。1.1 三方向的定位Web靠经验、Crypto靠数学、Misc靠脑洞先说Web方向。CTF里的Web题绝大多数都长着一个“web项目”的外壳比如一个登录页面、一个文件上传窗口、一个Ping测试工具甚至是一个简单的网站后台。题目会故意留一些常见的Web安全漏洞比如SQL注入、文件包含、命令执行、反序列化等你的任务就是像真实渗透测试一样通过信息收集、漏洞探测、漏洞利用三个步骤把藏在服务器里的flag找出来。Web突出的特点是题型丰富、套路可复用你刷过的题越多样掌握的手法越多就越容易形成条件反射。比如看到?id参数就想到SQL注入看到?page参数就想到文件包含看到上传点就想到绕过解析。所以Web方向的刷题效率很高正反馈也强适合作为入门的第一站。再说Crypto方向。CTF里的Crypto题并不要求你掌握多高深的密码学理论它更看重你对经典题型、常见攻击手段的熟悉程度。这些题可以简单分成三类第一类是编码类Base64、Hex、ASCII、URL编码这些都是送分题第二类是古典密码凯撒、栅栏、维吉尼亚、摩斯、培根特征明显、解法固定第三类才是现代密码重点几乎全压在RSA上。RSA的考点相对集中大数分解、共模攻击、低加密指数攻击、选择密文攻击等翻来覆去就这么几板斧。所以Crypto是三个方向里最容易“背下来”的它的核心壁垒不是智商而是熟练度。最后是Misc方向。Misc是“Miscellaneous”的缩写翻译过来就是杂七杂八。这个方向包含了隐写、流量分析、压缩包分析、编码、取证等一大堆内容几乎没有一个统一的套路。很多Misc题到最后一步就是“猜”——看到图片文件名、题目描述里的某个单词突然灵光一现flag就出来了。所以Misc非常依赖经验积累和脑洞刷题量上去了很多“坑”其实都是套路。1.2 先刷Web、再啃Crypto、最后碰Misc的刷题节奏我给新人的建议是按顺序刷不要三线并进。先把Web刷到有一定手感至少拿到一个登录框能想到SQL注入、拿到一个上传框能想到文件上传建立基本的“漏洞直觉”然后集中吃透Crypto的编码、古典密码和RSA常见攻击让自己具备“看得懂密文、写得出脚本”的能力最后再碰Misc因为Misc涉及的工具链很杂解隐写要会用binwalk、steghide、zsteg分析流量要会用Wireshark这些工具如果基础不牢很容易被劝退。当然这个顺序不是绝对的。如果你数学底子好也可以先攻Crypto如果你喜欢侦探一样的推理Misc可能让你上瘾。但无论怎么选都要坚持一个原则在一段时间内只深耕一个方向刷够三五十道题再切换这样知识点才能形成网络而不是杂乱无章的碎片。1.3 刷题平台与题库选择的经验题库怎么选现在主流的刷题平台有CTFShow、Bugku、BUUCTF等各有各的特点。CTFShow的题目分类清晰从入门到进阶都有梯度标记适合新手上手Bugku的Misc题很经典有些脑洞题现在还在被各种教程引用BUUCTF则汇聚了大量历年赛题题目全、来源广适合刷题量上来以后查漏补缺。我的建议是新手期先用CTFShow做主线它每个方向都有对应的题目编号顺着编号刷不会迷路遇到不会的题目再去Bugku和BUUCTF里搜同类型题强化。模拟CTF个人赛含AI安全题目的赛题也别放过现在越来越多赛事开始把AI安全、模型对抗等内容加入赛题虽然目前占比不高但这是趋势提前接触没有坏处。2. Web方向信息收集、漏洞利用与解题实操Web方向的题目虽然多但实际上就是“找入口、找注入点、找逻辑漏洞”这三个环节的排列组合。我刷了这么多Web题发现大部分题目的解题路径都可以套用一套固定的流程。2.1 信息收集90%的Web题卡在这一步很多新手拿到一道Web题第一反应就是直接动手试注入、试上传这其实是错的。CTF的Web题和真实渗透不一样题目环境通常是静态的、已知的出题人不会把flag藏在特别隐蔽的地方它往往就藏在你忽略的“细节”里。所以打开题目的第一件事永远是“看”。看页面源代码、看请求头里的User-Agent和Cookie、看有没有robots.txt、看有没有备份文件比如.bak、.swp、~结尾的文件、看首页引用的JS文件甚至要看.git目录是否泄露。用浏览器自带的开发者工具按F12把Network和Sources仔细过一遍这一步能筛掉一半以上的简单题。举个例子有一道Web题页面就显示“Welcome to my website”什么功能都没有。很多新手就卡住了不知道下一步该干嘛。但如果你按F12看源码可能会发现注释里写着!-- test.php --访问test.php又会发现存在文件包含漏洞最终通过读取/flag拿到flag。整个过程没有任何高级技巧全部靠信息收集。在这个环节目录扫描工具也很常用。我自己用过的有御剑、dirsearch、dirmap等御剑是图形界面扫描速度快适合快速找备份文件和后缀路径。但要注意御剑这类工具的字典偏向真实渗透CTF环境里目录不会太多很多时候手看源码比扫目录更快。2.2 漏洞利用SQL注入、文件包含与命令执行是重头戏Web方向的高频考点我统计下来主要集中在SQL注入、文件包含、文件上传、命令执行、反序列化这五类。每一类都有比较固定的payload和绕过思路。SQL注入最常见的场景是登录绕过。假设后台SQL语句是SELECT * FROM users WHERE username$user AND password$pass那么用户名为admin or 11 --就能让WHERE条件恒为真。这里--在MySQL里是注释符能把后面拼接的密码判断全部注释掉登录自然就破解了。如果题目过滤了空格和or可以尝试用/**/替代空格、用||替代or比如admin||11##在MySQL里也注释掉后面的内容。文件包含类题目常出现在?pagexxx.php这种参数里。通过把参数改成php://filter/convert.base64-encode/resourceflag.php就能读取flag.php的Base64编码内容解码后就能看到源码和flag。如果题目允许直接包含远程文件甚至可以直接构造一个RCE。命令执行类题目的经典场景是Ping工具输入IP地址后系统执行ping $input。这时候输入127.0.0.1; cat /flag会怎么样在Linux shell里分号表示命令分隔前一条命令执行完会接着执行cat /flagflag直接就出来了。如果题目过滤了cat和空格同样有替代方案用tac替代cat、用${IFS}替代空格。这类题在CTF里叫“命令执行”考点就是过滤绕过。2.3 Web题常见绕过技巧速查过滤条件绕过方式典型示例过滤or用||替代admin||11#过滤空格用/**/或${IFS}替代?pagephp://filter/convert.base64-encode/resourceflag.php过滤cat用tac、less、more、head替代127.0.0.1; tac /flag过滤flag关键词用通配符*或fl?g127.0.0.1; cat /fl*过滤/用$(echo .sed s#.#/#g)或$PWD拼接注意这些绕过方式不是孤立的实际做题时要根据过滤规则组合使用。比如又过滤cat又过滤空格那就要tac${IFS}/flag一起上。2.4 我的实操心得Web题别想复杂了我见过太多人拿到Web题就开始背payload、试各种命令结果发现题目走的是别的路子。所以我想强调一句Web题优先从最笨的路径开始试。先看源码再看Cookie再试弱口令最后才是SQL注入和RCE。CTF出题人也是人设置题目时一定会埋伏笔这个伏笔通常藏在最容易看到但又最容易忽略的地方。如果你上手就大招连发容易把简单问题复杂化反而浪费大量时间。3. Crypto方向编码识别、古典密码与RSA攻击套路的完整梳理Crypto是三个方向里最“讲道理”的一个因为题目类型非常固定掌握了解题套路基本就能通吃。很多新手被Crypto吓住以为是高不可攀的数学竞赛实际上CTF里Crypto的难点全在“识别题型”和“会用工具”真正涉及高深数学推导的题占比并不高。3.1 编码类看见Base64不要慌先用工具过一遍编码类是最简单的题型但也最考验观察力。给你一串ZmxhZ3tXZWxjb21lX1RvX0NURl9Xb3JsZH0一眼就能看出是Base64因为末尾有且字符集是大写字母、小写字母、数字加/解码后就是flag{Welcome_To_CTF_World}。但实际题目往往不会只做一次编码。常见套路是Base64-Hex-ASCII或者是URL编码套摩斯电码多套编码叠加在一起。所以看到一个不明字符串不要急着手动解用CyberChef的“Magic”功能自动尝试解码是最省钱的方法。CyberChef是英国GCHQ开源的解码工具在浏览器里直接用效果很惊艳。3.2 古典密码凯撒、栅栏、维吉尼亚的识别特征古典密码的识别主要靠两个特征字符集和格式。凯撒密码明文是英文文本密文是字母移位的英文文本看不出明显单词但字符全是英文字母。解法是爆破25个移位量或者拿词频分析器自动识别。栅栏密码把明文按行分栏再按列读取解密就是重新分栏。它和凯撒的区别在于密文的字符分布比较“整齐”经常需要尝试不同的栏数。维吉尼亚密码密文是英文但比凯撒复杂不同字母用不同密钥移位。识别方法是先算重合指数如果偏离0.065说明可能是维吉尼亚然后用Kasiki测试找密钥长度最后用词频分析破解密钥。这里我想提一个工具随波逐流。这是一个国产的CTF工具箱集成了编码解码、古典密码、哈希爆破、RSA自动解题等几十种功能。对于不想手写脚本的人来说用它解古典密码非常省力。3.3 RSA你要背熟的五种攻击RSA是Crypto方向现代密码的绝对主力几乎所有CTF赛事的Crypto题库里都有那么几道RSA题。它的核心加密公式是c m^e mod n其中n p * qp和q是两个大素数e是公钥指数。解密需要知道phi (p-1)*(q-1)然后求e关于phi的模反元素d最后计算m c^d mod n。RSA攻击之所以五花八门核心原因是出题人会在参数选择上“做手脚”。最常见的题型和对应思路如下第一n很小或可以直接分解。如果n只有几百位十进制直接用工具如yafu、在线分解网站把n分解成p和q然后计算phi和d再用Python的pow(c, d, n)还原明文。这个属于送分题。第二低加密指数攻击。当e3时如果明文很短m^3可能直接小于n那么密文c开三次方根就能拿到m。如果出题人把一份明文加密给了多个接收者多个不同的n但e相同可以用中国剩余定理求出m^3再开根。第三共模攻击。如果多个密文是用同一个n、不同e加密同一个明文那么可以用扩展欧几里得算法直接还原明文。这种题很有辨识度题目会给你两个e和两个c共用一个n。第四低解密指数攻击。当d太小时可以用Wiener攻击通过连分数逼近d。这种题通常给一个特别大的n、一个中等大小的e提示“d很小”。第五p和q选取不当时。如果p和q的差值很小或者p-1、q-1有多个小因子可以用Pollards p-1算法破解。这类题在题库里出现频率不高但遇到时只要能想起来“因子差距小、用费马分解”就能解。3.4 实操用Python和gmpy2写一个RSA解密脚本无论哪种RSA攻击最终都绕不开Python脚本所以Crypto方向的刷题要求你至少会写简单的Python并且会装gmpy2库。下面是一个“低加密指数广播攻击”的完整脚本示例这类题在题库里非常常见。import gmpy2 from functools import reduce def crt(moduli, remainders): # 中国剩余定理 total 0 prod reduce(lambda a, b: a * b, moduli) for mod, rem in zip(moduli, remainders): p prod // mod total rem * gmpy2.invert(p, mod) * p return total % prod # 假设题目给了三组数据 n_set [n1, n2, n3] c_set [c1, c2, c3] m_cubed crt(n_set, c_set) m, ex gmpy2.iroot(m_cubed, 3) if ex: # 将整数明文转换成字节串 flag bytes.fromhex(hex(m)[2:]).decode() print(flag)这个脚本的核心是crt函数它把三组同余条件合并成一个同余式。gmpy2.iroot则负责开立方根。只要m^3 n1*n2*n3这个攻击就会生效。3.5 实战心得Crypto题先看“数字特征”再动手拿到Crypto题不要先写脚本先观察数据特征。如果题里给了很多长度相同的字符串大概率是RSA的多密文攻击如果给的密文是十六进制且很长可能是AES或DES如果给的密文是可见字符且末尾有是Base64没跑了。我刷题时习惯把题目给的参数都写在纸上标出n的位数、e的大小、c的长度一列下来解题思路自然就清晰了。另外Crypto题非常依赖“多密码嵌套自动解密工具”这类辅助。像随波逐流这种工具内置了RSA全自动攻击可以选择“分解n”“共模攻击”“低加密指数”等不同模式大部分常规题点一下按钮就能出结果。不过我的建议是可以用工具解但平时练习必须自己写脚本不然比赛时遇到工具没覆盖到的情况就彻底抓瞎了。4. Misc方向隐写、流量分析与杂项取证Misc是所有方向里“门槛最低但上限最高”的因为它的知识点横跨文件格式、编码、网络协议、取证分析甚至有点侦探推理的味道。Misc题看起来散实际上还是有清晰脉络的。4.1 图片隐写从strings到zsteg的一整套工具链图片隐写是Misc的最大分支核心就是“图片里有隐藏信息”。常见的手法包括把flag拼在图片末尾、把flag藏在EXIF信息里、用工具把信息写入图片的冗余区域LSB隐写、把压缩包附加在图片后面等。解这类题有一套固定流程先跑strings在Linux里执行strings picture.png | grep -i flag直接看有没有可疑字符串。这个方法虽然粗糙但能解决30%的图片隐写题。查EXIF信息用exiftool查看图片的元数据很多出题人会把flag写在“作者”“注释”或“版权”字段里。用binwalk扫文件结构执行binwalk picture.png如果输出里出现ZIP、RAR、7z等字眼说明图片后面拼接了压缩包。提取隐藏文件用foremost picture.png -o output或binwalk -e picture.png提取隐藏的压缩包。LSB隐写如果图片看起来正常且没有附加文件可能是LSB隐写。用zsteg针对PNG/BMP或stegsolve图形界面分析每个颜色通道的最低位提取隐藏信息。要注意的是图片宽高被修改也是常见考点。如果一张PNG图片显示不全或者提示CRC错误很可能是出题人篡改了图片的宽高字段flag就藏在被裁掉的那部分像素里。修复方法是用Python的PIL库重新设置宽高或者用exiftool、010 Editor直接修改文件头里的宽度和高度字段。4.2 音频隐写看频谱、听音频、读波形音频隐写题在Misc里也很多见常见套路是在音频频谱图里画了字符串或者把Morse码信号藏在声道里。解题工具用得最多的是Audacity打开音频后切换到频谱图视图肉眼找线索。比如一段音频听起来像噪音但频谱图里赫然写着flag{...}这题就解完了。另一种常见手法是摩斯电码隐写音频里有一段长短不一的“滴答”声把长音和短音转成-和.,再用摩斯电码解码就能拿到flag。还有一种是反向播放把音频倒过来听出题人会把一段话倒着录进去用Audacity的“反向”效果处理一下就能听到。4.3 流量分析Wireshark三板斧流量分析题的输入通常是一个.pcap文件一般是某个场景的抓包记录比如用户访问网站、传输文件、通信等。分析思路也很固定先看协议统计用Wireshark打开后菜单栏“统计 - 协议分级”能快速看出流量里HTTP多还是DNS多判断重点方向。提取HTTP对象HTTP流量里很可能直接藏了文件传输记录在Wireshark里右键选择“导出对象 - HTTP”把传输过的文件全部导出一个个看。过滤可疑流量比如dns过滤看DNS查询如果发现大量畸形DNS查询可能是DNS隐蔽通道用http.request过滤看HTTP请求方法如果是POST且内容可疑很可能在传输数据。有一种经典流量分析题是“给出一个网站的登录抓包从中提取出用户名和密码”这类题直接用Wireshark的“Follow TCP Stream”功能跟踪TCP流就能看到HTTP明文请求内容。4.4 Misc方向的经验总结先跑工具再开脑洞做Misc题我最大的体会是“工具先行”。不要一开始就猜出题人的心思先把strings、binwalk、foremost、exiftool这些工具通通跑一遍能拿到结果就直接拿工具跑完了还没线索再开始“脑力激荡”看文件名、看题目描述、查图片像素的异常之处。这样按部就班能最大程度避免漏掉信息。5. 实操案例一套模拟CTF个人赛的完整心路历程前面讲的是方法论这一节我用一套模拟的CTF个人赛题目含Web、Crypto、Misc各一道来演示完整的做题过程。这种模拟方式非常推荐——尤其适合在正式比赛前用来训练时间分配和心态。5.1 第一题签到题Misc题目描述“找到藏在图片中的flag”附上一张看起来像是活动海报的PNG图片。第一步strings扫描strings poster.png | grep -i flag输出直接给出ZmxhZ3tXZWxjb21lX1RvX0NURl9Xb3JsZH0一看就是Base64解码得到flag{Welcome_To_CTF_World}签到题10分钟解决。这类题考的就是你对“隐藏信息在文件末尾”这种手法的熟悉程度。5.2 第二题命令执行Web题目是一个在线网速测试工具输入IP地址就返回ping结果。我用浏览器F12看了前端源码发现它把输入框的值提交到/ping.php后端执行了类似system(ping -c 3 . $_GET[ip])的命令。输入127.0.0.1; cat /flag提交返回结果显示cat: /flag: No such file or directory。说明命令确实执行了但/flag路径不对。再试; ls /发现根目录下有一个flag.txt于是提交; cat /flag.txt成功拿到flag。这里值得注意的一点是题目可能使用容器目录flag路径不固定。所以遇到命令执行题第一步永远是ls看看目录结构别直接猜路径。5.3 第三题RSA低加密指数广播攻击Crypto题目给了三个文件分别包含一组(n, c, e)其中e都是3并且题干提示“我们用相同的密钥加密了三份文件”。看到e3和多组数据立刻想到低加密指数广播攻击。按照前面给的脚本把三组n和c填进去运行后输出一段十六进制转ASCII后就是明文flag{rsa_is_not_hard_when_e_is_3}。整个过程从识别题型到出flag大概10分钟比你想的要快。5.4 做题节奏与时间分配建议模拟这套题时我会按“Misc签到题 - Web漏洞题 - Crypto数学题”的顺序来做。Misc签到题往往是最短时间拿分的关键先把它解决能稳住心态Web题通常需要信息收集放在第二顺手Crypto题如果卡壳不要死磕做不出就先跳过回头再想。赛场上最忌讳的就是在某一题上死磕超过40分钟。CTF比赛是时间与心理的双重博弈决定最终排名的往往不是你最擅长的方向而是你如何分配时间、如何在卡壳时果断放弃。6. 常见问题与坑位记录这一节我把自己常年在题库和比赛中踩过的坑、新手容易犯的错集中列一下算是高浓度的避坑清单。6.1 Web题常见迷惑点不要只盯参数忘了看请求头Cookie、Referer、X-Forwarded-For都可能藏flag或影响后端逻辑。比如有些题目需要伪造X-Forwarded-For: 127.0.0.1才能访问后台。SQL注入时注意符号转义在Web表单里输入或时记得看回显。如果页面报错或异常很可能有注入点如果没反应可能被WAF过滤了换编码再试。命令执行题的过滤规则经常怪遇到cat被过滤就用tac遇到/被过滤就试试cd 目录进入后再执行遇到空格被过滤就试试$IFS。组合绕过是常态。6.2 Crypto题常见坑位判断Base64时注意字符集不是所有含结尾的字符串都是标准Base64可能是Base64的URL变种-和_替换了和/。RSA题先确认e和phi是否互素如果不互素常规求逆会报错。这时候可能就是“共模攻击”或“e与phi不互素”的变异题型不能硬套公式。谨防密文被二次编码很多时候题目给的密文不是直接的c而是hex(c)或base64(c)需要先解码成整数才能开根号、做乘方运算。6.3 Misc题常见坑位图片宽度被修改后strings根本扫不出来这时候先修图片宽高再继续分析。判断标准是PNG文件头的IHDR块中的宽高字段被改动后文件打开时可能报CRC错误或显示为残缺图。压缩包伪加密有时候你看到一个ZIP文件要密码但直接搜“伪加密”绕过用ZipCenOp工具或者在十六进制编辑器里找到压缩源文件目录区的加密标志位09 00改成00 00就能直接解压。流量包里不只有HTTP看到SMTP、FTP、TFTP也要点开看看有些出题人把flag直接写在邮件正文或FTP上传文件里。6.4 工具与环境的坑Web端实时视频、Web页面PDF打印这类场景其实也是Web安全题的“外衣”。比如一个能将网页转为PDF的功能可能存在SSTI或SSRF漏洞一个实时视频流页面可能涉及WebSocket消息篡改。做题时不要被场景吓住原理还是那套。Chrome网上应用店中的浏览器插件比如网页剪藏工具不建议在比赛用它们会干扰抓包工具的证书信任。最好准备工作一个干净的“比赛浏览器”只装Burp的CA证书。error when starting dev server这类报错在Node.js环境经常出现通常是环境变量或缓存问题。如果自己搭建CTF题目环境出现crypto.getRandomValues is not a function这类报错大概率是浏览器在非安全上下文HTTP下调用了Web Crypto API把页面换成localhost或HTTPS就能解决。7. 工具链整理一套趁手的装备比什么都重要刷CTF就像上战场工具不顺手做题效率直接减半。下面是我常用的工具清单也是这个圈子里公认的“标准装备”。7.1 Web方向工具箱浏览器开发者工具必备不用多解释。Burp Suite Community抓包改包工具Web题绕不开。重点要会用它改请求头、重放请求、看响应历史。御剑目录扫描读目录路径很快但注意线程别调太高否则可能被题目环境限流。dirsearch命令行目录扫描字典更全适合非Windows环境。中国蚁剑/冰蝎拿到webshell后使用的连接工具。CTF里如果某道Web题给了马webshell用这两个工具连一下就能执行命令。7.2 Crypto方向工具箱CyberChef浏览器端解码神器适合编码、古典密码、可选多种算法自动组合。随波逐流CTF工具箱国产神器内置RSA自动攻击、哈希爆破、编码解码、古典密码解密是国内CTF玩家几乎人手一份的软件。gmpy2Python库RSA数学运算必备支持大整数取模、求逆、开根号。SageMath高级数学工具适合更复杂的RSA变种题不过新手可以晚点再学。7.3 Misc方向工具箱foremost / binwalk文件分离和隐藏文件提取双雄一个主要跑binwalk -e一个主要跑foremost。StegSolveJava图形工具用于分析图片的各个颜色平面查看LSB隐写。zsteg命令行工具快速检测PNG/BMP的LSB隐写。Audacity音频分析看频谱、看波形、反向播放。Wireshark流量分析必装了。010 Editor十六进制编辑器允许直接改文件头、修宽高、改加密标志位。7.4 多密码嵌套自动解密工具这里特意说一下“多密码嵌套自动解密工具”。CTF里经常出现“先Base64再反转再凯撒再栅栏”这种套娃题手动解非常浪费时间。像随波逐流、CyberChef的Recipe流程功能都可以把多种解码方式串在一起自动执行。我的做法是先在CyberChef里建一个常用解码流程的模板比如“From Base64 - Reverse - Rot13 - From Hex”遇到套娃题先套模板运行一次看看输出是否可读不可读再调整顺序。这比自己一步步手解快出一个量级。8. 关于刷题心态与备赛节奏的几点个人经验最后聊点技术以外的东西。CTF不仅考知识也很考心态和策略。以下几点是我自己从刷题库到参加个人赛总结出来的经验不一定适合所有人但值得参考。第一不要做“只收藏不刷题”的人。我见过很多新手收藏了一堆资料、装了一堆工具结果连一道简单的签到题都没完整做完。CTF是“手上功夫”看十篇教程不如自己动手解一道题。刷题量这个东西没有任何替代品。第二弄懂每道题的“出题意图”。做题不是目的理解出题人为什么这么设置、考察哪个知识点、解题的关键步骤在哪才是真正的收获。所以我刷题有个习惯每解完一道题花五分钟写一段解题记录包括“题目关键词、用到的手法、卡壳点、最终解法”。长期积累下来这就是一本私人题库复习时非常有价值。第三比赛时“先易后难限时放弃”。我给自己定的比赛规则是每道题最多花40分钟40分钟没思路就果断换题。有时候把简单题全做完心态稳定了回头再看难题反而能找到切入点。CTF比赛比的不是某一题的攻坚而是全局的分数最大化。第四善用搜索引擎和社区。CTF题库很大你永远不会是第一个遇到某道题的人。卡壳的时候搜一下题目关键词也许能找到别人的Writeup解题报告。我的态度是看Writeup不丢人看了之后能理解并复现甚至能闭卷重做一遍才是真正的收获。第五关注新的题型趋势。现在CTF比赛的题目越来越贴近真实世界场景比如Web方向的AI安全题目、云原生安全题目Misc方向的取证题目和IoT题目也在增加。题库里的老题是基础但不能只刷老题也要关注新出现的题型提前了解相关的技术和工具。CTF刷题是一条越走越宽的路从Web到Crypto再到Misc每个方向都有无穷的细节可以挖掘。这篇笔记我尽量把自己踩过的坑和沉淀下来的经验写清楚希望能给正在题库里“打怪升级”的你一些参考。最后再分享一个小习惯我每次刷题都会把工具链的版本、依赖、配置一次性写好环境搞好再做题绝不边做题边装环境——这是当年被“环境配到崩溃”逼出来的教训建议你也试试。