CTF入门教程

CTF入门教程
lieyan16简介
教程不够专业,如有问题及时指出,大佬不喜勿喷
CTF(Capture The Flag)翻译为“夺旗赛”,是网络安全领域的技术竞技比赛,起源于1996年DEFCON黑客大会,如今已成为全球极客的“奥运会”。比赛形式主要分三类:
1. 解题模式(Jeopardy):类似ACM竞赛,选手通过解技术题目(如逆向、Web渗透、密码学)得分,比较简单,可以零基础入门
2. 攻防模式(Attack-Defense):队伍互相攻击对方服务器并防守己方服务,拼漏洞挖掘和修复速度,观赏性强但门槛高。
3. 混合模式(Mix):结合解题与攻防,如iCTF国际赛,考验综合能力。
学习门槛由低到高为 解题-攻防-混合
本人技术一般,本文主要是本人学习过程中的笔记和个人感想,希望能对大家有帮助
CTF解题模式
大概技术背景(建议提前了解一下)
- 编程基础(Python/C/C++)(前期学python就够了)
- 计算机网络原理
- Linux操作系统使用(非常重要)
- 基本的数学知识(主要是针对密码学的理解)
我将从我认为版块的由简入难开始讲
Misc(杂项)
我认为最好入门的一个版块,也几乎是各大CTF比赛最好拿分的版块,就如其名“杂项”,杂,会出各种题,非常考验脑洞
建议:多做题积累经验,熟悉各种冷门工具,保持开放的思维
工具
工具推荐可以去CTFtools-wiki项目上看对各种工具做了分类,作者写的挺不错
winhex:
| 工具名 | 工具功能 | |
|---|---|---|
| 随波逐流 | 非常强大的集成工具,拿这个软件新手也能拿一血,不建议直接拿这个一把嗦,先学学原理 | |
| Binwalk | 分析文件并提取其中嵌入的其他文件或代码,常用于文件分离。 | 点击跳转 |
隐写术:
在图片、音频、视频中隐藏信息
取证分析:
从内存镜像、磁盘镜像中恢复数据
编码转换:
各种稀奇古怪的编码方式
网络流量分析:
分析pcap文件找出异常流量
社会工程学:
通过公开信息搜集获取线索
工控
新出的,一个小众但重要的方向,涉及对工业控制系统的协议分析、PLC程序逆向等,与现实世界的关键基础设施安全紧密相关。
Crypto (密码学)
古典密码
凯撒密码、维吉尼亚密码、栅栏密码等
现代密码
RSA、AES、DES等加解密原理
哈希函数
MD5、SHA系列的特征与碰撞
攻击方法
频率分析、选择密文攻击、共模攻击等
Web安全
最贴近实际应用的方向,考察你对网站和应用系统的漏洞发现、分析与利用能力。
SQL注入:
通过构造恶意SQL语句,欺骗后端数据库执行非预期操作,从而窃取、修改或删除数据。
文件上传与包含
利用网站对文件处理的不当逻辑,上传恶意文件(Webshell)或包含敏感系统文件,最终获取服务器控制权。
SSRF与XXE
利用服务器端请求伪造让内网服务“为你所用”,或通过XML外部实体注入读取服务器本地文件。
反序列化与模板注入
在Java、Python、PHP等语言中,利用对象反序列化过程或模板渲染引擎执行系统命令。
JWT与越权
伪造或破解JSON Web Token,或利用逻辑漏洞实现水平/垂直越权访问。
学习建议:
Reverse (逆向工程)
如同数字世界的考古学,要求你将编译后的程序“翻译”回可读的逻辑,理解其运作机制并找到关键信息。
静态分析
使用IDA Pro、Ghidra等反编译工具,在不运行程序的情况下,通过阅读汇编代码或伪代码来理解程序逻辑。
动态调试
使用x64dbg、GDB等调试器,让程序运行起来,通过下断点、单步执行、观察寄存器和内存的变化来动态分析程序行为。
算法还原
核心挑战是理解被混淆或加密的核心算法,并可能需要用Python等语言重写该算法以生成Flag。
安卓逆向
对APK文件进行解包,分析smali代码或使用工具(如Jadx)将Dex文件反编译为Java代码进行审计。
学习建议:
Pwn(二进制漏洞利用)
技术栈最最深、难度最最高的方向之一,目标是通过程序漏洞获取远程服务器的shell控制权。
栈溢出
最经典的漏洞类型,通过覆盖函数返回地址,控制程序的执行流程,跳转到你想要的代码位置。
堆利用
比栈溢出更为复杂,涉及堆块的管理机制(如glibc的malloc/free),通过破坏堆结构来实现任意地址写或代码执行。
Shellcode与ROP
在安全机制(如NX)开启的情况下,你无法执行自己输入的代码(Shellcode),但可以通过组合程序中已有的代码片段(Gadgets)组成ROP链来达到同样目的。
格式化字符串漏洞
利用程序中对用户输入未加过滤直接用作格式化字符串参数(如printf)的漏洞,实现任意内存读/写。
内核Pwn
漏洞发生在操作系统内核中,提权漏洞的利用,挑战难度最高。
学习建议:扎实的C语言和汇编基础是前提




