首页/新闻资讯/正文详情

CTF新手入门指南:Crypto与Web路线、工具与避坑经验

发布时间:2026/9/25 4:10:41 来源:云帆数科 栏目:资讯中心
CTF新手入门指南:Crypto与Web路线、工具与避坑经验
说实话我第一次接触CTF的时候完全是一脸懵。网络安全、CTF、Crypto、Web这些词我全都见过但连在一起就成了天书。看别人的WriteUp仿佛在看另一种语言打开题目界面弹出来一堆看不懂的英文和乱码半天连入口都找不到。所以我特别理解新手那种收藏了一堆宝典还是不会做题的挫败感。这篇东西是我从零开始打CTF这几年把Crypto和Web两个方向从入门到能独立刷题的完整思路、工具清单和踩坑记录重新沉淀了一遍。它不保证你看完变大佬但至少能让你知道每道题在考什么、你需要学什么、工具怎么用、题目做不出来时该往哪个方向想。适合刚开始接触CTF或者已经断断续续刷题但总觉得没有章法的朋友。1. 为什么我来写这份CTF全领域入门指南1.1 从乱撞到有章法的真实经历我刚入CTF时最大的问题不是不努力而是努力得毫无方向。今天看到有人解出Misc题就去搜二维码分析明天看到大佬摆弄Burp Suite又跑去学抓包后天听人说密码学很有前途立马翻出数论课本开始啃。结果三个月过去会的还是只有打开网页看源码连flag长什么样都没见过几个。后来我才慢慢意识到CTF不是比谁会的知识点多而是比谁能在有限时间里快速识别出题目背后的考察点并用对应工具链求解。这个识别能力才是刷题积累的核心。Crypto和Web之所以被我选作主攻方向不是因为它们简单而是因为它们最容易形成输入-处理-输出的可复现套路非常适合新手建立正反馈。1.2 Crypto和Web为什么值得优先啃先说Crypto。密码学题目有一个很大的优点题目告诉你要求什么剩下的全是纯逻辑。你拿到一串密文要么是编码要么是古典密码要么是现代加密算法。每类都有固定的解题路径。哪怕你不会写代码先学会用工具也能解掉一批签到题。这种短平快的成就感对新手期来说太宝贵了。再讲Web。Web题更接近真实世界里的漏洞利用思路学到的知识不光能打比赛还能迁移到以后做渗透测试或者代码审计。而且Web题目的交互感强你能在浏览器里一步步点、一步步改看着自己把不可能变成拿到flag是很有吸引力的。更现实的原因是国内很多CTF比赛Web题数量多、题量稳定作为拿分方向性价比很高。1.3 这篇指南能帮你解决什么问题我会尽量把新手期最常遇到的三类问题讲透第一题目看不懂——不知道题目在问什么、给的文件是什么格式第二工具不会用——装了半天东西不知道在哪个环节下手第三刷题没章法——同一个知识点换了个马甲就不认识。所以你不需要一口气读完我建议你先看章节标题挑最卡住自己的那部分开始。2. Crypto方向从玩转编码到啃下RSA2.1 先别急着上证书编码和古典密码才是地基很多新手一上来就搜RSA怎么解结果被模反函数、欧拉定理绕晕直接劝退。我的建议是先别碰RSA先花几周时间把编码和古典密码玩熟。编码不是加密它只是信息的重新表示但CTF里非常爱考。Base64是最常见的特征是末尾可能有等号字母数字混合。还有Base16/32、Hex、URL编码、Unicode编码。每一种编码都对应一个字符串特征记住特征就够了。比如看到一堆%E4%BD%A0第一反应是URL编码看到\x66\x6c\x61\x67就是Hex转ASCII。古典密码则是算法思想不涉及复杂数学。凯撒密码、栅栏密码、维吉尼亚密码、培根密码、摩斯电码、猪圈密码这些在Misc和Crypto签到题里频繁出现。我的经验是拿到密文先丢进支持大量解码的工具里批量扫一遍如果某个算法的输出突然变成人类可读文本这道题基本就解完了。2.2 题型结构拆解题目给你什么你要找什么Crypto题拿到手第一步永远是分类。给你一堆字符串大概率是编码给你一段英文单词全乱掉顺序可能是栅栏或列移位给你一个ciphertext和一串数字可能涉及RSA给你一个Python脚本里面定义了加密逻辑那就是让你逆向。我的分类习惯是看到了encrypt关键字和自定义函数直接读代码搞清楚它做了什么变换。看到p、q、e、n这些参数基本就是RSA套餐。看到AES、DES、RC4这类现代加密一般会附带密钥或者能通过脚本爆破题目里经常藏着如果密钥太短之类的提示。2.3 工具链在线工具箱与Python脚本的搭配新手最忌讳一个工具不够就慌。我的建议是准备两套方案在线工具做快速尝试Python做精确复现。在线工具我常用的是CyberChef它就像一个密码学版的计算器左边输入右边输出中间拖拽各种解码模块。很多编码题和古典密码题拖几个模块就出来了不用写代码。当在线工具搞不定时写Python就是必须的了。我强烈建议新手学会Python的基本文件读写、字符串处理、循环和函数。不需要多深的编程水平但至少要能看懂别人WriteUp里的例子脚本。你不会写没关系先学会改把在线工具的输出粘贴进去把网上现成的脚本参数改一改也是一种学习。2.4 进阶路线哈希、对称加密、非对称加密与RSA当你刷完一堆签到题可以开始接触现代加密了。哈希不是加密它是单向的。CTF里最常见的是MD5、SHA1、SHA256以及各种变体。如果题目只是让你判断哈希类型可以用hash-identifier这类工具。如果想爆破短文本比如4位数字加字母的哈希直接写脚本穷举即可。这算是Python脚本入门最舒服的练习。对称加密AES和DES重点看模式。ECB模式直接分块加密相同明文块得到相同密文块特征很明显可能存在字节攻击CBC模式则需要关注IV和填充方式。新手不需要深入会计每一个细节但至少要认得这些名词并且能在题目代码里指出哪一行是密钥、哪一行是IV。RSA是很多人的噩梦。其实签到的RSA题套路很固定n太大就分解e特别小比如3就用低加密指数攻击e和phi(n)不互素就用有限域开根给了两组n共用p那就求最大公约数。每一类都有现成模板但这背后的原理值得你找一篇讲透彻的文章认真读一遍。我自己的体会是RSA题做多了慢慢就会对数字之间的关系产生直觉。2.5 Crypto新人最容易迷惑的三个瞬间第一个瞬间拿到一串不知道是什么的字符。这时候不要盲目猜先看特征。二进制是01串Base64特征是有/十六进制一般长度是偶数英文单词乱序则可能是维吉尼亚。第二发现工具解出来的是一堆乱码然后就不继续了。乱码本身也是信息可能是GBK编码显示成UTF-8也可能是需要再Base64一层或者里面藏了一个zip文件头。第三跑别人的脚本报错。大概率是Python2和Python3的版本问题或者缺少某个库。把报错信息复制到搜索引擎里直接就能解决千万别灰头土脸地关掉。3. Web方向从第一道签到题到独立解题3.1 Web题归根结底是在玩Request和Response你打开浏览器输入网址浏览器向服务器发送一个请求服务器返回一个响应。Web安全里几乎所有漏洞都发生在这个请求-响应的交互过程中。理解这一点之后你的浏览器就不再是一个显示网页的工具而是一个可以手动修改请求的调试平台。按F12打开开发者工具切到Network面板刷新页面你就能看到网页背后的每一个请求。想看请求头点开某个请求里面会有User-Agent、Cookie、Referer这些字段。CTF Web签到题特别喜欢在这些字段上做文章比如服务端只接受从某个特定来源发来的请求那你就需要在请求头里加上对应字段。3.2 信息收集这步决定了你能不能继续Web题有一条不成文的规则题目环境里什么都是线索。网址路径、页面源码、注释、robots.txt、备份文件、Git泄露全部都要看一遍。我第一次做Web题时卡了很久后来发现flag就写在网页源码的HTML注释里。那种感觉又气又想笑。后来我养成了一个习惯拿到任何Web题先按F12从头划到尾看源码再看有没有敏感目录再抓包看看响应头甚至看JS文件里有没有端到端逻辑。很多题目其实并不难难的是你漏掉了第一层信息。3.3 四大基础漏洞的识别与利用思路新手优先学这四个SQL注入、XSS、命令执行、文件上传。SQL注入本质上是把输入拼进SQL语句让数据库执行了原本不想执行的条件。题目里最常见的是登录绕过和报错注入。不要急着学各种花哨手法先把 or 11 --这种最基本的逻辑搞明白知道为什么能绕过再接触联合注入、布尔盲注。XSS通常是前端漏洞反射型、存储型、DOM型三者的区别要搞清楚。但是CTF里的XSS题一般会带Cookie盗取、CSP绕过这类前置知识新手期能读懂题目代码找到可控输出点就已经很厉害了。命令执行通常是服务器把参数拼进系统命令。你需要在命令行里利用;、|、这些控制符截断原命令。做这类题时建议先在本地终端多试几次搞明白命令拼接的边界尤其要记得Linux和Windows的命令差异。文件上传题核心是服务端有没有校验文件类型和内容。绕过方式是改Content-Type、改扩展名、上传图片马。新手最容易踩的坑是只关注扩展名忽略了文件内容里本身就带着PHP代码。上传成功后还要找到文件被存储的路径才能通过访问触发解析。3.4 实战中必须要养成的抓包习惯很多Web题你在浏览器地址栏输入的内容会被转义掉或者浏览器自动做了一些你感知不到的处理。这时候你需要一个能代理流量的工具。Burp Suite是Web选手最常用的。安装之后配置本地代理把浏览器流量指过去就能在Proxy面板里看到所有请求。你可以把请求发给Repeater手动修改参数后重新发送观察响应变化。这个流程对SQL注入和命令执行来说几乎是必备的。新手刚开始会觉得Burp Suite界面复杂其实你只要学会用Proxy和Repeater两个模块就能应付大多数题目。抓包不是高深技巧就是一个看清楚并手动控制的过程多抓几次就熟了。3.5 环境坑很多人其实死在搭环境而不是题目本身Web题经常要求你本地起一个环境比如装PHP、MySQL、Apache/Nginx。新手最容易在这里崩溃版本冲突、端口占用、数据库连不上题目做到一半就不想干了。我建议直接用现成的集成环境把PHP和MySQL一起装好。更省事的方案是直接用Docker题目给的docker-compose.yml一条命令就能把环境拉起来。如果这个方向你完全没接触过就先学Docker的基础操作up -d、logs、exec这三个命令就够了。等你能稳定跑起一套环境你的解题效率会翻倍。4. 一台电脑搞定全方向我的CTF工具箱与配置清单4.1 操作系统选择建议用Linux虚拟机或者WSL我见过很多新手在Windows上折腾各种依赖最后崩溃在环境变量里。如果你打算长期玩CTF建议尽早切换到Linux环境。不用装双系统用虚拟机或者WSL就够了。WSL的优点是启动快和Windows文件互访方便虚拟机的隔离性更好更适合用来跑包含恶意代码的样本。我自己的选择是虚拟机跑一个Ubuntu里面装好Python3、Docker、常用文本编辑器再把Burp Suite跑在Windows宿主机里两边配合。如果你还是依赖Windows也没关系后面提到的工具基本都有Windows版本但你在查WriteUp时看到很多Linux命令会一脸懵所以迟早要适应。4.2 编码、密码、杂项常用工具一个CyberChef真的可以解决大量编码问题但如果要更顺手工具清单可以这样配编码转换工具随波逐流CTF编码工具是一个集合了大量编码和密码功能的图形化工具很适合新手在不知道用什么解码时批量尝试。二进制分析HxD或010 Editor查看文件头、改文件字节。网络抓包Wireshark分析pcap流量文件Misc方向几乎逃不掉。图片隐写Stegsolve能逐通道查看图片信息新手必装。压缩包爆破AZPR或者fcrackzip简单字典爆破。这些工具都不需要一开始装齐遇到题目缺什么再补什么比一次性装一堆更高效。4.3 Python脚本写点一次性脚本能解决90%重复劳动不要觉得写脚本是大佬专利。我自己的习惯是每个星期把最近刷题时用过的Python代码片段保存下来比如读文件、转码、爆破、RSA解密的模板。下一次遇到类似题型直接复制修改比重新写快得多。比如蜂鸣音原文可能有别的比喻你需要做的是建立一个自己的ctf_scripts文件夹放几个常用的模板包括十六进制转字符串脚本Base64、Base32循环解码脚本简单的凯撒爆破脚本AES/CBC解密脚本模板RSA常见攻击模板分解n、低指数、公约数这些代码你一开始可能看不全懂但跑起来就能看到结果慢慢改慢慢理解就会了。编程能力不是CTF的前置门槛是你在刷题过程中通过反复使用逐渐长出来的。4.4 浏览器、代理与Burp Suite的基础配置浏览器建议装两个一个日常用Edge或Chrome一个专门装各种安全插件。安全浏览器里必装的是修改请求头的插件可以用来快速篡改User-Agent、Referer等。另一个就是强制不缓存插件避免测试时读到旧资源。Burp Suite的入门配置其实不用铺开很多Proxy模块里确认代理端口是8080浏览器设置好HTTP代理指向127.0.0.1:8080然后切到Proxy的HTTP history刷新题目页面就能看到请求记录。如果页面加载很慢或者报错八成是代理没配对或者证书问题搜索关键词 Burp Suite 证书 安装 就能解决。等你能顺利抓包了再把重点放到Repeater上把一个请求里可控的参数仔细改一遍观察响应差异。5. 从刷题到打比赛学习路线和心态调整5.1 新手刷题平台怎么选市面上的CTF刷题平台不少我建议新手优先选择有详细WriteUp、难度标记清晰的平台。初期可以找一个综合题库按难度从Easy开始刷。题目量不用多关键是每道题做完后一定要看几篇别人的WriteUp对比自己的解题思路。不建议一开始就挑战大型比赛的真题那里的题目难度波动很大容易让人产生我是不是不适合的错觉。从签到题开始是更明智的路径。很多比赛的签到题基本就是送分题用来安抚参赛者的情绪做这种题的意义在于建立Web题大概长什么样的认知。5.2 从签到题到中等题循序渐进刷题节奏建议分三轮。第一轮只看题解目的不是做题而是了解题型分类比如哪些题属于信息收集、哪些题属于SQL注入、哪些题属于RSA基础攻击。第二轮自己动手做签到题遇到卡壳就翻答案翻完后把这道题对应的关键知识点记录到笔记里。第三轮找中等难度的题尝试独立解出。注意同一知识点的题刷三到五道之后就要主动去找变种。比如学会了联合注入就去试布尔盲注、时间盲注、报错注入看它们之间有什么不同。如果永远只做同一个模板就算重复一百次也只是在练熟练度没有在练识别能力。5.3 赛前准备与赛中策略打一场真实比赛前除了知识储备你还需要做三件事第一熟悉比赛平台的提交flag格式很多新手拿到flag不造怎么提交白白浪费分数。第二提前把常用工具装好别在比赛时才开始下载Burp Suite。第三准备一个能快速记录的文本把比赛中的每一步操作的关键信息复制进去防止赛后复盘时失去上下文。赛中策略我个人的心得是先把所有题目都点开看一眼哪怕是盲区也花几分钟读取题目描述和附件。某个题做不出来不要死磕时间花在可能解出来的题目上性价比更高。比赛时紧张是正常的但你要知道绝大多数队伍都不是全解的能稳住节奏就已经超过很多人了。5.4 赛后复盘WriteUp比做题更重要CTF圈里流传着一句话一场比赛最重要的不是得分而是赛后复盘。比赛结束后主办方和大佬们会放出WriteUp。这时候你要把自己做过的题和没做过的题都看一遍哪怕是根本看不懂的题目也要记录下解题的核心思路在哪个方向上。我自己的复盘模板很简单题目名称、考点、我的解法和卡点、标准解法涉及什么新知识、这个知识点还能用在哪里。这些笔记会在日后刷题时反复被翻出来慢慢变成你自己的知识网络。比起收藏一大堆别人的笔记自己写下来的哪怕只有一句话价值也要高很多。6. 小白避坑指南这些弯路我真的替你走过了6.1 只收藏不行动等于零我知道看到这里你的收藏夹里可能已经多了一堆文章但这篇如果不跟着做你很快又会回到不懂-搜索-收藏-吃灰的循环里。我的建议是给自己定一个非常小的目标今天装好CyberChef去题库找一道最简单的编码题试试明天把Burp Suite的抓包配置跑通。不要管懂不懂先动手遇到问题再回来查。6.2 不要一上来就追最新的CVE和0day新手看到新闻里某个漏洞很火爆就去搜利用方式十有八九是浪费时间。CTF考察的是经典漏洞的变形和组合不是最新漏洞的复现。你连SQL注入的闭合逻辑都没弄明白去追什么0day纯粹是自我感动。把基础漏洞的原理吃透远比知道十个漏洞的名称有用。6.3 学好英语和搜索引擎是隐性战斗力很多工具文档和错误信息都是英文而且CTF题目的描述、比赛规则也常用英文。这不是让你去考四六级而是在遇到报错时学会把报错里的关键词提取出来去搜索引擎里查。说实话我见过的很多新手查问题从来不提取关键字而是把整段报错粘贴进去搜出来的东西毫无参考价值。你要学会把报错拆成几个词组再组合搜索这是很多人忽略的硬技能。6.4 找一个社区或队友但不要被焦虑绑架有一起刷题的队友是极好的。你们可以互相出题、互相讲题、互相补知识盲区。但也要注意不要每天只看别人刷了多少题、拿了多少奖然后陷入我好废物的负面情绪。CTF是一场长跑不是短跑你的目标是今天比昨天多会一道题的类型这就够了。6.5 法律与道德底线CTF是学习竞赛不是攻击工具这一点我放在最后因为它比所有技巧都重要。CTF比赛的环境是主办方专门搭建的是有授权、有边界、有规则的游戏。你在这里学到的技术只能用于CTF竞赛、自己搭建的实验环境和获得明确授权的安全测试。一定不要因为学会了几个命令就对别人的网站、公司内网或者公共平台做测试。这不是炫技是违法的甚至可能毁掉你整个职业生涯。安全行业的容错率很低一旦留下案底很多大门都会对你关闭。所以请务必管住好奇心把精力放在合法的靶场、比赛和授权测试里。最后分享一点个人的小习惯我在每次刷完题后都会在笔记里给自己写一句这道题里我学到的最关键的一条逻辑是什么。时间久了这些一句话总结往往比大段大段的WriteUp更能在赛场上救命。希望你也能找到属于自己的那种节奏刷题不焦虑比赛有底气。

相关推荐

Mailcow邮件服务器部署指南:从DNS配置到容器化避坑实战
Mailcow邮件服务器部署指南:从DNS配置到容器化避坑实战

/* 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 4:10:41

如何批量保存抖音创作者的作品:Douzy 无水印下载工具完整指南
如何批量保存抖音创作者的作品:Douzy 无水印下载工具完整指南

如何批量保存抖音创作者的作品:Douzy 无水印下载工具完整指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallbac… · 2026/9/25 4:10:41

OctoPrint 插件 Helpers 机制:跨插件能力共享与调用的完整指南
OctoPrint 插件 Helpers 机制:跨插件能力共享与调用的完整指南

物联网后端 【免费下载链接】OctoPrint OctoPrint is the snappy web interface for your 3D printer! 项目地址: https://gitcode.com/gh_mirrors/oc/OctoPrint 点击查看 免费下载 Helpers 是 OctoPrint 插件体系中面向"插件与插件之间"的能力共享机制&… · 2026/9/25 4:10:35

九联UNT403HS刷机全攻略:从U盘强刷到Hitool救砖
九联UNT403HS刷机全攻略:从U盘强刷到Hitool救砖

/* 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 4:53:31

Chrome WebGL支持全解析:从检测到开启再到排错的完整指南
Chrome WebGL支持全解析:从检测到开启再到排错的完整指南

/* 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 4:53:31

Tessent环境OCC选型指南:标准/同步/mini OCC如何抉择
Tessent环境OCC选型指南:标准/同步/mini OCC如何抉择

/* 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 4:53:31

芯片过温保护逻辑切换:从硬件关断到系统级热管理
芯片过温保护逻辑切换:从硬件关断到系统级热管理

/* 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 4:53:31

WebPlotDigitizer:从图片中精准提取曲线数据的在线工具指南
WebPlotDigitizer:从图片中精准提取曲线数据的在线工具指南

/* 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 4:53:31

Windows休眠自动唤醒原因与三层治理方案
Windows休眠自动唤醒原因与三层治理方案

1. 问题本质:休眠不是“关机”,而是“深度待机”状态下的精密唤醒机制失控很多人以为Windows休眠(Hibernate)就是把电脑彻底关掉,等下次按电源键再开机——这是个根深蒂固的误解。实际上,休眠是Windows最精… · 2026/9/25 4:53:25

数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)
数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)

/* 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

创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战
创维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
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

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码