ctf

CTF(Capture The Flag,夺旗赛)是一种网络安全竞赛形式,参赛者通过分析、破解各类安全题目获取 flag(一串特定格式的字符串)来得分。本文整理 CTF 各方向的入门资料、练习平台、常用工具与 Writeup 来源,方便随时查阅。

主要方向

CTF 题目通常按技术方向分类,常见的有以下几类:

  • Web:Web 安全。涉及 SQL 注入、XSS、SSRF、文件上传、文件包含、反序列化、SSTI 模板注入、命令注入等。
  • Pwn:二进制漏洞利用。涉及栈溢出、堆利用(UAF、Double Free、Tcache 攻击等)、格式化字符串漏洞、ROP 等。
  • Reverse:逆向工程。分析二进制程序逻辑还原算法,涉及反汇编、反编译、脱壳、反混淆等。
  • Crypto:密码学。涉及 RSA、AES、DES、古典密码、椭圆曲线、哈希碰撞等。
  • Misc:杂项。涉及隐写术、流量分析、数字取证、内存取证、编码转换、脑洞题等。
  • 其他方向:Mobile(安卓逆向)、IoT(固件分析)、区块链智能合约安全等。

知识库与教程

  • CTF Wiki:中文最系统的 CTF 知识库,涵盖各方向基础到进阶,入门必看。
  • CTF All In One:GitHub 上的综合资料。
  • 书籍推荐:
    • 《从0到1:CTFer成长之路》—— 适合入门,覆盖各方向基础。
    • 《CTF特训营》—— 较为系统的实战训练。
    • 《密码学原理与实践》—— Crypto 方向理论补充。
    • 《加密与解密》(段钢)—— Reverse 方向经典。

练习平台

平台 地址 特点
BUUCTF https://buuoj.cn 国内最常用,题目丰富,收录大量历年赛题
攻防世界 https://adworld.xctf.org.cn XCTF 旗下,按难度分级,适合刷题
CTFHub https://www.ctfhub.com 技能树式引导学习,适合入门
NSSCTF https://www.nssctf.cn 国内平台,题目持续更新
BugKu https://ctf.bugku.com 老牌平台,Misc 题较多
PicoCTF https://picoctf.org 卡内基梅隆出品,英文,非常适合零基础入门
HackTheBox https://www.hackthebox.com 偏渗透测试,实战性强
TryHackMe https://tryhackme.com 引导式学习路径,适合新手
RootMe https://www.root-me.org 法语/英语,题目质量高
CTFtime https://ctftime.org 全球赛事日历与 Writeup 聚合

常用工具

Web

  • Burp Suite:抓包、重放、爆破,Web 题必备。
  • sqlmap:自动化 SQL 注入检测与利用。
  • dirsearch / gobuster:目录与文件爆破。
  • AntSword(蚁剑)/ Godzilla(哥斯拉):WebShell 管理。
  • wfuzz:模糊测试参数与路径。

Pwn

  • pwntools:Python 库,编写 exp 脚本的核心工具。
  • gdb + pwndbg / gef / peda:动态调试插件,增强 gdb。
  • ROPgadget / ropper:查找 ROP 链 gadget。
  • one_gadget:查找 libc 中的单 gadget execve。
  • LibcSearcher / libc-database:根据泄漏地址匹配 libc 版本。
  • checksec:查看二进制保护机制(NX、Canary、PIE 等)。

Reverse

  • IDA Pro:反汇编与反编译标杆(有免费版)。
  • Ghidra:NSA 开源的逆向套件,免费功能强。
  • x64dbg / x32dbg:Windows 动态调试。
  • dnSpy / ILSpy:.NET 程序反编译。
  • jd-gui:Java 反编译。
  • APKTool / jadx / frida:安卓逆向与 Hook。

Crypto

  • SageMath:代数与数论计算利器,RSA 题常客。
  • CyberChef:编码/解码/加密一站式网页工具。
  • yafu:大数分解。
  • RSAtool / RsaCtfTool:RSA 攻击工具集。
  • openssl:证书与密钥分析命令行工具。

Misc

  • 010 Editor:十六进制编辑,带模板解析。
  • StegSolve:图片隐写分析。
  • binwalk / foremost:文件提取与分离。
  • Audacity:音频隐写查看频谱图。
  • Wireshark / tshark:流量包分析。
  • Volatility:内存取证分析框架。
  • Zsteg:PNG/BMP LSB 隐写检测。
  • ExifTool:查看图片元数据。

Writeup 与资讯来源

  • CTFtime Writeups:全球赛事题解聚合。
  • 先知社区:阿里安全的攻防技术文章。
  • 安全客:安全资讯与技术文章。
  • GitHub:搜索各高校与战队仓库(如 xxx-ctf-team/writeup)。
  • 个人博客:多关注常年打比赛的师傅们的博客。

学习建议

  1. 先确定一到两个感兴趣的方向深入,而非全面铺开。
  2. 从 PicoCTF / CTFHub 技能树入门,建立基础概念。
  3. 刷 BUUCTF / 攻防世界积累题型,遇到不会的题看 Writeup 复现。
  4. 组队参加线上比赛(如强网杯、网鼎杯、DASCTF),实战中成长最快。
  5. 养成记笔记习惯,整理自己的 exp 模板与工具清单。