最开始接触CTF那会儿,我和大多数人一样,以为这是一群黑客在互相攻击。后来真正打了几场比赛才明白,CTF夺旗赛更像是一场“安全技术的定向越野”——主办方把漏洞埋在线上的靶机里,参赛者通过Web、逆向、密码学、杂项等方向的题目,找到一串叫做Flag的字符串提交得分。难度从入门签到题一路铺到地狱级,没过多久我就被各路大佬的骚操作按在地上摩擦,但也正是这种被虐感,让人学得飞快。
这套内容从入门到精通,基本把我前面两三年踩过的坑、绕过的弯、查过无数资料才搞懂的知识点都覆盖了。不管你是完全没接触过安全的小白,还是已经会点编程但不知道从哪下手的新手,只要愿意往下看,按照这套思路去刷题、去复现、去复盘,三个月到半年内达到能独立打比赛的水平是完全可以做到的。我尽量不讲虚的,把每个方向的门道、工具、经典题型和最容易卡住你三四个小时的问题全拆开来讲。
1. CTF到底是什么,值得费这么多劲去学吗
很多人被“学完即可就业”这种标题吸引过来,但这个说法只能说对了一半。CTF本身是一场竞赛,不是职业培训班。不过它考察的能力模型,和网络安全工程师的日常工作是高度重叠的:发现漏洞、分析威胁、理解系统底层、思考怎么防护。所以打好CTF的人去做渗透测试、安全研究、安全开发,确实有明显的竞争优势。但“学完就能就业”得加个前提——你得真学进去了,至少能稳定解出中档题,而不是只看了教程。
1.1 CTF的赛制与分类
先扫个盲。CTF常见赛制有三种,第一种是Jeopardy(解题模式),题目按类别摆在平台上,解出一道得一道分,适合新手入门。第二种是Attack-Defense(攻防模式),每个队伍维护自己的靶机,既要防守又要打别人,非常刺激但门槛高。第三种是King of the Hill(占领模式),在同一个环境里抢控制权,持久战,考验综合能力。
题目方向大致分为Web(网站安全)、Misc(杂项)、Pwn(二进制漏洞利用)、Reverse(逆向工程)、Crypto(密码学),以及近年越来越火的Mobile(移动安全)和AI安全。每个方向的知识体系差异很大,但入门阶段没必要全都会,选一两个主攻,其他了解即可。信安专业的学生,或者打算走安全开发的人,可以多花时间在Web和二进制上,因为这两个方向的技能跟岗位需求最贴合。
1.2 “学完就业”这种噱头要怎么看
把“就业”作为CTF学习结果的唯一衡量标准,很容易让人焦虑。我见过不少新人一上来猛刷题、猛看教程,两三个月后发现自己还是打不穿一套中等级别题目,就觉得自己没天赋。其实CTF的知识点是典型的“螺旋式上升”——你第一次接触文件包含、命令执行,看了解析觉得自己懂了,但过两周在另一道题里遇见,照样一脸懵,这是正常的。真正有效的方式是反复接触、反复实操、反复总结,把每个知识点变成肌肉记忆。
另外,CTF竞赛不等于漏洞挖掘的全部。比赛里题目会有明确的考点和边界,而真实业务系统的漏洞挖掘更多靠经验、信息收集能力和对各种框架的理解。所以心态要摆正:通过CTF打基础,在攻防两端建立体感,后面再接触真实项目就不会虚。你现在看到的很多安全从业者,最开始也都是从一道Web签到题、一个zip伪加密开始入坑的。
2. 入门首先搞清楚:CTF五大方向怎么选
新人最常见的错误是一进CTF就每个方向都想碰,结果哪个都没吃透。正确的做法是根据自己的背景和兴趣,把精力聚焦在一到两个方向上,先把一条线打通,再横向扩展。
2.1 Web方向:离业务最近的赛道
Web是我最推荐新手优先尝试的方向,因为它入门快、反馈强、资源多。所谓Web题,就是主办方给了你一个存在漏洞的网站,你的目标是通过漏洞利用拿到后台权限或读取特定文件里的Flag。常见的考点包括SQL注入、XSS、CSRF、文件上传、文件包含、命令执行、反序列化、SSRF等等。
做Web题需要你熟悉HTTP协议的工作流程,会看请求和响应头,能熟练使用Burp Suite抓包改包,同时也需要一定的编程基础,特别是PHP、Python和JavaScript,因为很多网站题目模拟的就是真实业务环境。当你拿到一个“robots ctf”相关的题目,第一反应就应该是访问 http://目标站点/robots.txt,查看是不是有隐藏路径,这种找Flag的思维模式,就是Web题的入门姿势。
2.2 Misc杂项:入门第一个突破口
Misc是CTF里最“杂”的方向,但也往往是新手能最早做出成就感的领域。它不要求你有多深的编程功底,更考验观察力、搜索能力、工具熟悉度和脑洞。比如一道题给了一张图片,Flag藏在图片的RGB通道里,肉眼根本看不见,但用StegSolve打开逐层翻一下就能看到;或者给了一个音频文件,用Audacity看频谱图,Flag就写在声波图里。
Misc题的另一个大头是编码,从最简单的Base64、Hex、URL编码,到古典密码里的凯撒、维吉尼亚,再到CTF圈特有的“佛曰”编码、“社会主义核心价值观”编码,都是为了让你学会识别不同编码的特征,并熟练使用对应的解码工具。常见的工具有随波逐流CTF编码工具、CTF全能工具箱等,这类工具把常用编码解码和哈希计算集成在一起,离线也能用,省去了大量来回切换在线工具的时间。
2.3 Crypto密码学:数学敏感度决定上限
密码学题目主要分成两类:一类是古典密码,偏脑洞和识别,你看到一串字符,得判断它是什么加密方式,再找对应工具解;另一类是现代密码,涉及分组密码、RSA、ECC、哈希长度扩展攻击等,需要你有一定数学功底和Python编程能力。
“ctf分组密码”是入门阶段绕不开的考点。经常出现的玩法包括AES的ECB模式重放攻击、CBC模式的字节翻转攻击、以及许多密码库低级错误导致的非标准实现。要攻克这类题,需要理解分组密码的基本工作模式(ECB、CBC、CFB、OFB、GCM),以及它们各自的安全属性。最简单的入手办法是先做题目复现,比如复现一道CBC翻转攻击,你实际操作过一次,比看十篇文章都有效。
2.4 Pwn与Reverse:底层的硬核地带
Pwn是二进制漏洞利用,Reverse是逆向分析,它们经常被放在一起说,因为都需要读汇编、理解程序内存布局。Pwn方向最常见的入门题目是ret2text,对应网上的热点搜索词“ctf二进制中的rip题目怎么做”。rip题目其实很简单:程序给了你一个栈溢出点,而代码里恰好存在一个后门函数(比如system("/bin/sh")),你只需要在输入里构造足够长的填充,覆盖返回地址,让程序执行流跳转到后门函数就行。
如果你没接触过汇编,第一次看到栈帧、返回地址、gdb调试这些概念会觉得头大。我的建议是先不用深入理解所有汇编细节,跟着教程把一道简单的栈溢出题跑通,看看溢出前后寄存器和栈的变化,建立直观感受后再回过头补理论基础。Ghidra和IDA是逆向方向最常用的工具,前者免费开源,后者功能强大,能静态分析出程序的伪代码,极大降低阅读汇编的门槛。
2.5 Mobile与更多细分方向
移动安全方向在比赛里的存在感越来越强,题目的形态通常是给你一个APK文件,让你分析里面的逻辑、解密数据、寻找隐藏的Flag。入门需要会使用jadx或JEB对APK进行反编译,理解Android四大组件和Smali汇编的基础知识。“ctf mobile easyapp”这类题目就是典型的签到题,一般只是简单混淆或者把Flag硬编码在Java层,用jadx打开就能看见,难一点的会放到so层或者通过动态调试绕过检测。
除了这几个主流方向,现在还有AI方向的新题型,比如对抗样本、模型窃取、提示词注入、AI生成的题目等。CTF里已经出现了“ctf大模型”“ctf中ai题目”这样的考点,线下赛也开始引入AI辅助解题。不过对新人来说,AI题目暂时不用花太多精力,先把基础方向打好,再往前沿方向扩展,性价比会更高。
3. 上手第一步:把工具链和环境搭对
工具链是CTF的地基。工欲善其事,必先利其器,这句话在CTF里尤其成立。很多新手卡在题目上大半天,最后发现只是一个工具没装对、环境变量没配好,这就很亏。
3.1 操作系统选型
CTF题目的运行环境绝大多数是Linux,特别是Pwn和Reverse方向的题目,很多工具和调试手段都依赖Linux。所以我强烈建议你在电脑上装一个虚拟机,或者直接用一台闲置机器安装Linux发行版。推荐使用Kali Linux或者专门用于CTF的定制系统,网上有很多“windows ctf专用系统”的镜像,但这类系统本质上还是Windows混搭虚拟机Ubuntu,其实不如直接一步到位用Linux。
对于日常做题,我个人习惯是开一台Ubuntu作为主环境,安装好Python3、Docker、GCC、GDB,以及常用的CTF工具包。因为你后面会遇到需要自己编译漏洞利用脚本的情况,没有Linux环境会非常难受。要是你连Linux基础都没有,也不用慌,先学会几个关键命令(cd、ls、find、grep、vim、python3),然后直接开始做题,用到了再补,效率远高于先把整个Linux系统学完再动手。
3.2 必装工具清单
这里列一个我自己常用的工具清单,按方向整理,方便你逐项安装:
Web方向:Burp Suite(抓包改包)、Hackbar(浏览器插件,快速构造请求)、sqlmap(SQL注入辅助)、dirsearch(目录扫描)、Chrome DevTools(浏览器调试)。
Misc方向:StegSolve(图片隐写)、Audacity(音频分析)、010 Editor(十六进制编辑器)、随波逐流CTF编码工具(离线编码解码)、CTF全能工具箱(综合类)。
Crypto方向:Python3(配合pycryptodome库)、RsaCtfTool(RSA攻击集成工具)、CyberChef(在线编码/加密工具集,强烈推荐)。
Pwn方向:pwntools(Python漏洞利用框架)、GDB + pwndbg(调试利器)、checksec(查看程序安全属性)、one_gadget(RCE辅助)。
Reverse方向:IDA Pro或Ghidra(反编译)、jadx(APK反编译)、Frida(动态插桩)。
工具有很多,但不建议一开始就全装齐全。我见过太多人花两个星期去研究工具配置,真正做题的时间反而没剩多少。正确做法是装一个基础集合,需要什么再补什么,缺什么搜“xxx ctf工具怎么装”,10分钟就能搞定。
3.3 离线环境与靶场平台搭建
“离线解ctf最简单三个步骤”这个话题经常有人搜,其实很简单:第一,把题目文件下载到本地;第二,使用对应的本地工具或写脚本解题;第三,把得到的Flag提交到平台。很多题目特别是Misc和Crypto根本不需要联网,一个离线工具包就能搞定。所以我建议你准备一个CTF工具箱目录,把常用的字典、脚本、二进制工具按类别归档,以便随时调用。
另一方面,如果你是想自己练习或者组织内部比赛,可以考虑搭建一套在线靶场。现在有很多开源动态靶场平台,可以一键创建隔离容器,按需启动关闭,自带题目管理和排行榜功能。搭建这类平台的核心思路是先装好Docker,再用平台提供的Docker镜像启动前端和数据库,最后把题目作为独立镜像推送到平台里。整个过程不算复杂,网上有大量现成教程,按部就班操作即可。
4. 杂项题的真实解题思路:从“佛说”到隐写术
Misc之所以叫杂项,是因为它的内容涵盖了编码、隐写、取证、流量分析、社工等等。但只要你做得多了,会发现它内部是有规律的,而且很多思路可以复用。这里挑几个搜索热度特别高的典型题型,把解题过程掰开揉碎讲一遍。
4.1 编码与古典密码
“ctf佛说:只能四天”是很经典的一道老题,它用的编码叫“佛曰加密”,对应有解密工具,输入那串带“佛”字的密文就能得到Flag。这种题的考点就是识别和熟悉工具,没有任何技术难度,但你得知道有这种编码存在。
与它类似的还有“社会主义核心价值观”编码,每个字对应数字0-23,再映射成ASCII或Base64;“猪圈密码”是用特殊符号组成格子图形;“与佛论禅”是另一种变体。对付这些,最快的方式是记住特征:如果一串密文全是中国字表达特定文化意象,优先尝试对应编码工具;如果是一堆奇怪的图标、符号、字母组合,就交给CyberChef或随波逐流工具去跑。
古典密码方面需要记住几个高频考点:凯撒密码(按字母表位移,爆破13个或25个位移量就可以)、摩尔斯电码(通常给你一堆点和横线)、栅栏密码(按行重排)、维吉尼亚密码(需要密钥)。这些都有现成的在线工具,关键是识别。
4.2 图片隐写与压缩包伪加密
图片隐写是Misc里最常出现的题型,搜索热词里的“ctf粗心的小李”“ctf jpeg隐写题”都是这类。解题思路通常按以下顺序尝试:
先看文件头对不对。用十六进制编辑器打开图片,检查开头几个字节是否符合对应的图片格式(JPEG是FF D8 FF,PNG是89 50 4E 47)。如果文件头不对,说明文件被改了后缀,真正的数据可能是Zip或别的格式,把后缀改回来再打开。
再用StegSolve逐层查看图片的通道。StegSolve可以翻看图片的每个颜色通道和位平面,LSB隐写(即把信息藏在图片最低有效位中)就是通过这种方式看到的,图像上会浮现出Flag或者二维码。
最后别忘了看文件尾部和属性信息。JPEG文件在FF D9结束后如果还有多余字节,通常藏了额外文件;图片属性里的标题、注释、作者字段也在检查范围内。“ctf pdf隐写”和图片类似,把pdf后缀改成zip再解压,常常能挖出隐藏的图片或文本。
压缩包伪加密是另一个高频考点,就是搜索词里的“ctf level1压缩包怎么解helloctf小明的生日伪加密”。所谓伪加密,就是压缩包根本没有真正加密,只是文件头的加密标记位被置为1。用十六进制编辑器打开zip文件,找文件头里的通用位标记,把标记位的加密位(第0位)从1改成0,直接保存,再用解压软件就能打开,不需要密码。如果“小明的生日”这种题目出现了四位或六位数字提示,那就先用暴力破解工具跑一下,zip的弱密码很快就能出来。
4.3 PDF隐写与流量包分析
PDF隐写的通用思路是:先用strings命令或文本编辑器搜索可见字符串(很多出题人会不小心把Flag明文留在元数据里),再尝试把PDF转成zip格式解压,检查里面的图片、字体、JavaScript脚本,最后用pdf-parser等工具分析对象树,看看是否有隐藏流。
流量包分析是Misc里的进阶题型,也是搜索热词“流量包分析ctf”的核心。比赛通常会给你一个pcap/pcapng文件,里面有大量网络流量,你要从里面还原出攻击过程或者敏感数据。入门要从几个固定动作开始:用Wireshark打开流量包,先看Protocol Hierarchy统计哪些协议最多,重点关注HTTP和TCP,可以使用过滤表达式快速定位可疑请求;然后右键追踪TCP流或HTTP流,直接看到整个会话内容;常用的隐藏点包括HTTP POST请求里的菜刀流量(一句话木马连接)、DNS查询编码、ICMP隧道数据、图片上传流量里的文件内容等。
做流量分析题时必须有一个意识:流量包里的内容不是随便抓的,每一帧都可能有意义。我当时做第一道流量分析题,花了三个小时,最后发现Flag就躺在一条DNS查询记录的子域名里,从那以后我每分析一个流量包,都会把可疑域名字符串全部拼一遍再解码。
5. Web题的高频考点拆解
Web题是CTF里题量最大、最贴近真实业务的方向。想打好Web题,得先理解Web应用的基本工作原理:浏览器怎么发请求、服务端怎么处理、数据怎么存储、哪里可能被注入。下面拆解几个搜索热度最高的具体知识点。
5.1 文件包含与命令执行
文件包含漏洞简言之就是开发者把用户输入直接拼接到文件路径里,导致攻击者可以读取任意文件或执行代码。做题时常见的考点是利用 php://filter 伪协议读取源码,比如用 php://filter/convert.base64-encode/resource=flag.php 把源码base64编码输出,避免直接执行带来的麻烦;或者利用 data:// 协议写入PHP代码,配合include执行。
命令执行漏洞经常出现在调用系统命令的功能点里,比如一个网站提供了“ping IP地址”的接口,开发者直接把参数拼接到系统命令中。考点就是如何绕过过滤,搜索词里的“ctf命令执行passthru”就属于这一类。Passthru是PHP里执行外部程序的函数,和system、exec、shell_exec类似,区别在于它会直接输出二进制结果。如果题目过滤了常见符号(分号、管道号、空格等),可以通过换行符、$IFS、百分号编码来绕过,或者利用通配符绕过目录限制。
这类题第一个目标通常是找禁用函数有哪些,通过报错信息或直接试错确定;第二个目标是想办法不回显地拿到结果,比如DNS外带或者延时判断。最好的训练办法就是多刷CTF题目,把常见的WAF绕过姿势都过一遍,之后碰到真实站点也会有感觉。
5.2 Git泄露与敏感文件
“git泄露 ctf”是Web入门的高频考点,它的原理是网站把.git目录暴露在公网上了,导致所有人可以通过特定的工具下载到开发者的全部代码(包括历史提交)。做题时先用dirsearch扫描目录,找到/.git/,然后用GitHack等工具把源码还原出来,再通过分析源码找到Flag。但Git泄露有时候不是直接还原代码就完事,出题人可能故意在提交历史里留下旧版本Flag,或者在不同分支、Tag里放信息,这时候需要 git log、git diff、git branch 等命令逐层翻找。
敏感文件的题目同理,常见的还有/robots.txt(搜索引擎爬虫规则文件,出题人会把隐藏路径写里面)、/.gitignore、/backup.zip、/.svn/、/www.zip等。做题时要养成扫描敏感路径的习惯,很多Flag不会藏在“主路”里,而是在这些辅助文件里。
5.3 403问题与绕过思路
“做ctf网站老报403,如何关闭”这其实涉及两个层面的问题。一是出题方如果没配置好环境,确实会出现403,这种只能等平台运维修复;二是解题者主动访问某个目录时被服务器拦截,这时候需要思考怎么绕过权限验证。
常见的403绕过技术包括:使用IP直接访问、在URL路径末尾加“/”、使用大小写混淆(/admin和/Admin)、使用URL编码(%2e、%2f)、使用分号截断、使用X-Forwarded-For等伪造请求头、使用路径穿越(/static/..%2fadmin/)等。这些绕过的原理是利用服务器和Web应用之间的解析差异,比如Nginx和Apache对路径的解析规则不完全一致,如果你在本地站点通过,但远程站点403,可以考虑用不同的服务器解析差异绕过。这类题目做多了会形成条件反射:碰到403,先把各种路径变形方式试一遍。
6. 二进制与密码学的高频题型
相比Web和Misc,二进制和密码学方向的题目对基础能力的要求明显更高,但也不是高不可攀。只要把几个经典题型做透,新手也能在比赛里拿到分。
6.1 rip是什么,怎么打
“ctf二进制中的rip题目怎么做”是Pwn入门的第一道坎。RIP是x86-64架构下的指令指针寄存器,存放着CPU下一条要执行的指令地址。rip题目的核心漏洞是栈溢出:函数向局部缓冲区复制数据时没有检查长度,导致你可以覆盖栈上保存的返回地址。当函数返回时,CPU会跳到你指定的地址。
具体步骤是:先用file和checksec查看程序架构和安全属性,再用objdump或IDA找到后门函数的地址,然后写Python脚本用pwntools构造payload。payload格式为“填充字符 * 偏移量 + 后门函数地址”。偏移量可以通过gdb调试计算,也可以直接使用pwntools的cyclic命令生成测试字符串,程序崩溃后看RIP寄存器的值来确定偏移。
然后本地执行脚本,成功拿到shell,输入cat flag得到Flag,最后再连接远程靶机打一遍。整个过程不难,但涉及调试、汇编、Python三个技能点,第一次做可能很慢,但做通一道,后面Pwn题的基本功就有了。
6.2 分组密码的常见考法
“ctf分组密码”的具体题型很多,我挑两个考得最多的说一说,都是比赛里相对容易上手的。
CBC字节翻转攻击:CBC模式下,密文分组的每一位会影响下一分组明文对应的位。攻击者可以修改某个密文字节,从而控制下一分组明文中对应位置的值。题目通常会让你把一段密文解密后的明文改成特定值,你只需要修改前一个分组对应位置的字节,让该位置明文变成目标字符,然后重新提交即可。这种攻击的重点是不需要密钥,只需要知道明文中某个位置的原始字符和目标字符的异或关系。
ECB模式重放与拼接攻击:ECB模式下相同明文块会产生相同密文块,所以攻击思路是构造特殊长度的明文,把目标块挤到一个分组里,再通过密文拼接还原出未知明文的内容。历史上著名的“ECB饼干解密”就是利用这个原理精确还原加密信息的。
学这两个攻击方式时,建议先用Python的cryptography库写一个本地DEMO,自己加密、自己攻击,跑通一遍再去做CTF题,理解会深刻得多。
6.3 大模型与AI的题目怎么准备
“ctf大模型”“ctf中ai题目”是近两年出现的新方向,题目的形态还在快速变化中。目前常见的考点有两种:一是用大模型辅助解题,比如用模型做逆向题里的伪代码分析、用模型解释一段混淆脚本的行为、用模型辅助识别加密算法;二是直接考察AI安全本身,比如提示词注入(通过特殊输入让模型泄露系统提示词)、对抗样本(用微小的图像扰动让模型分类错误)、模型窃取(通过API接口顺藤摸瓜重建一个等价模型)等。
准备AI方向的题,首先要会调用大模型API,能写Python脚本批量请求,对图像分类模型也要有基本的训练和推理经验,至少要知道PyTorch如何加载模型并执行推理。其次是了解提示词注入的基本FAQ,好的提示词工程不仅可以用在解题上,也能帮助你在别的方向的题中快速定位考点。总的来说,AI方向是加分项,不是必选项。
7. 刷题路线、题库与比赛经验
理论看再多,不动手永远等于零。CTF是个极吃实操作量的领域,刷题量直接决定你看到题目时候的直觉准不准。入了门之后,最该做的是建立一个稳定的刷题节奏和复盘习惯。
7.1 适合新手的题库与训练平台
网上有很多长期开放的CTF训练平台,对新手非常友好。国外有picoCTF、CTFlearn,国内有各大高校维护的在线题库,还有各种动态靶场平台。选择平台的第一标准是“有人维护”和“题目难度分级”。如果题目没有难度标签,新手很容易被一道高难度题卡到怀疑人生。
我建议从Web和Misc的简单题刷起,每天至少一到两道,碰到不会的题可以先看官方WriteUp,但看完必须自己从头到尾复现一遍。再往后可以把刷题重点转向Crypto和Pwn方向,这两块的题目数量相对少,但每道题的知识密度高,适合深挖。“ctf题库”的来源很丰富,你可以在GitHub上直接搜“CTF WriteUp”找到很多优质题库的汇总仓库,把链接收藏好,形成自己的题目库。
另外还有“ctf知识库”类项目,相当于把分散在各个WriteUp里的知识点做成了索引,很适合在刷题过程中随时查询。如果某个知识点连续遇到三次以上,就值得单独整理一份笔记,收录经典题型、解题模板和常见绕过方式,这就是你自己的“CTF手册”。
7.2 参赛与复盘经验
有一定刷题量后,就可以去参加线上赛了。第一次参赛建议放低预期,以“体验流程”为目标,能签到就行。正式比赛比练习要紧张得多,题目类型更多、环境也常有不稳定的时候,提前熟悉平台操作非常有必要。组队参赛是加速成长的方式,找一个比你强一点的人搭队,跟着看大佬的思路,比一个人闷头刷题效率高很多。但注意别当“挂件”,比赛时尽量每个方向都看一眼,哪怕打不动高难度的题,也要试着把每道题的题目描述读懂。
赛后复盘是整个比赛中最有价值的环节,没有之一。每次比赛打完,把没解出来的题全部找WriteUp看完,记录每道题的考点、破题关键、工具使用方式和实现脚本。复盘笔记不用很长,但一定要“可检索”,我会给自己的笔记打标签,例如#Web #命令注入 #PHP特性,之后遇到同类题直接搜索标签,非常方便。
7.3 常见问题速查表
最后整理一份高频问题速查表,这些几乎全是新手必踩的坑,建议收藏。
问题现象
可能原因
排查方式
解压zip提示密码错误
伪加密
用16进制编辑器检查文件头加密标志位,尝试将第0位改为0
网站访问返回403
服务器权限限制
尝试路径大小写、末尾加/、URL编码、伪造X-Forwarded-For等绕过方法
图片打开但没发现异常
隐写存在但被忽略了
用StegSolve逐通道检查,用strings查看可见字符串,检查文件尾部是否有附加数据
流量包打开不知道看什么
缺少分析重点
先看协议统计,再追踪HTTP/TCP流,关注DNS查询、图片上传、命令行特征
栈溢出payload发出去直接崩
偏移计算错误
使用pwntools的cyclic生成序列,通过崩溃时的寄存器值计算精确偏移
解码出来的内容是乱码
编码识别错误
清理空格和换行后,尝试Base64、Hex、反转、URL解码组合排列
连接远程服务成功但无反应
缺少交互处理
检查是否要用recvuntil等待回显,或者程序使用了行缓冲机制
做CTF的过程中,最让我受用的一个习惯是“记录一切”。每次解题不管成不成功,都把自己尝试过的方法、看过的文档、卡住的位置记下来。因为很多坑不是知识盲区,而是需要重复记忆的操作路径,有了笔记和速查表之后,你遇到问题就再也不会慌,一步一步去验证就能找到突破点。这套从入门到精通的路径就摆在面前了,能不能走到“精通”,看的不是天赋,而是你花了多少时间在靶机上,踩了多少坑又爬了出来。
