CTF 入门基础
什么是 CTF
CTF(Capture The Flag,夺旗赛)起源于 1996 年 DEFCON 全球黑客大会,是网络安全爱好者之间的竞技游戏。CTF 竞赛涉及众多领域,内容繁杂。其大致流程是,参赛团队之间通过进行攻防对抗、程序分析等形式,率先从主办方给出的比赛环境中得到一串具有一定格式的字符串或其他内容,并将其提交给主办方,从而夺得分数。为了方便称呼,我们把这样的内容称之为'Flag'。
CTF 即夺旗赛,是网络安全领域的竞技活动。内容涵盖 Web 安全、PWN、逆向、密码学、取证及杂项等方向。本文解析了 CTF 的三种主要竞赛模式,列举了常用的在线刷题平台与本地漏洞靶场,并整理了比赛所需的各类工具包分类,旨在帮助初学者建立知识体系,掌握从环境搭建到实战演练的核心技能路径。

CTF(Capture The Flag,夺旗赛)起源于 1996 年 DEFCON 全球黑客大会,是网络安全爱好者之间的竞技游戏。CTF 竞赛涉及众多领域,内容繁杂。其大致流程是,参赛团队之间通过进行攻防对抗、程序分析等形式,率先从主办方给出的比赛环境中得到一串具有一定格式的字符串或其他内容,并将其提交给主办方,从而夺得分数。为了方便称呼,我们把这样的内容称之为'Flag'。
学习 CTF 之前,建议先了解到底什么是 CTF 以及学习的目的。其次最好具备相应的编程能力,若是完全不具备这些能力极有可能直接被劝退。毕竟比赛的时候动不动写个脚本,搞个审计的。
CTF 比赛知识范围大致分为:Web 安全、PWN(二进制安全)、Reverse(逆向破解)、Crypto(密码学安全)、Forensics(数字取证)、Misc(杂项)。
CTF 中的 Web 题型,就是给定一个 Web 网站,选手要根据题目所提示的信息,找到网站上的 flag 字符串。做题的方法类似于渗透测试,但通常不会是一个完整的渗透测试,而是用到渗透测试中的某一个或某几个环节。可能涉及信息搜集、各类漏洞发现与利用、权限提升等等。为了获取 flag,可能需要拿到管理员权限,数据库权限,甚至获取网站所在服务器的权限。
PWN 在安全领域中指的是通过二进制/系统调用等方式获得目标主机的 shell。CTF 中主要考察二进制漏洞的发掘和利用,需要对计算机操作系统底层有一定的了解。在 CTF 竞赛中,PWN 题目主要出现在 Linux 平台上。
CTF 之 REVERSE 题目涉及到软件逆向、破解技术等,要求有较强的反汇编、反编译扎实功底。需要掌握汇编,堆栈、寄存器方面的知识。有好的逻辑思维能力。主要考查参赛选手的逆向分析能力。
CTF 之 CRYPTO 部分题目考察各种加解密技术,包括古典加密技术、现代加密技术甚至出题者自创加密技术。
CTF 之 FORENSICS 包括文件格式分析,隐写术,内存转储分析或网络数据包捕获分析,提取静态数据文件中隐藏的信息的任何挑战都可以归为这一类。
就是除上述之外的乱七八糟的网络安全范围内的东西,英文全称为 Miscellaneous,意思是混杂的、各种各样的。MISC 题通常包括文件分析、图像隐写、数据搜索、内存镜像分析和流量分析等。题型多样,脑洞大,趣味性强是 MISC 题型的主要特点。
在解题模式 CTF 赛制中,参赛队伍可以通过互联网或者现场网络参与。这种模式的 CTF 竞赛与 ACM 编程竞赛、信息学奥赛类似,以解决网络安全技术挑战题目的分值和时间来排名,通常用于在线选拔赛,选手自由组队(人数不受限制)。题目主要包含六个类别:RE 逆向工程、Pwn 漏洞挖掘与利用、Web 渗透、Crypto 密码学、Mobile 移动安全和 Misc 安全杂项。
在攻防模式 CTF 赛制中,参赛队伍在网络空间互相进行攻击和防守,通过挖掘网络服务漏洞并攻击对手服务来得分,通过修补自身服务漏洞进行防御来避免丢分。攻防模式通常为线下赛,参赛队伍人数有限制(通常为 3 到 5 人不等),可以实时通过得分反映出比赛情况,最终也以得分直接分出胜负。这是一种竞争激烈、具有很强观赏性和高度透明性的网络安全赛制。在这种赛制中,不仅仅是比参赛队员的智力和技术,也比体力(因为比赛一般都会持续 48 小时及以上),同时也比团队之间的分工配合与合作。
结合了解题模式与攻防模式的 CTF 赛制,主办方会根据比赛的时间、进度等因素来释放需解答的题目,题目的难度越大,解答完成后获取的分数越高。参赛队伍通过解题获取一些初始分数,然后通过攻防对抗进行得分增减的零和游戏,最终以得分高低分出胜负。采用混合模式 CTF 赛制的典型代表如 iCTF 国际 CTF 竞赛。
CTF 大赛,俗话说'兵马未动,粮草先行'。打 CTF 手里的武器工具少不了,CTF 比赛有些线下赛,不提供互联网环境,这就更需要开战前把工具包准备好了。
包含菜鸟教程、w3cschool、各种 API 文档查询工具,方便快速查阅语法和接口。
主要用于拦截和分析 HTTP/HTTPS 请求,常见的有 Burp Suite、Wireshark、Fiddler 等。用于修改请求参数、重放攻击、分析响应数据。
针对 SQL 注入、命令注入等场景的工具,如 SQLMap。用于自动化探测数据库结构和数据。
用于处理图片、音频、视频中的隐藏信息,如 Steghide、OpenStego、Binwalk 等。常用于 Misc 方向的题目。
当获取到用户权限后,尝试获取更高权限(如 root/admin)的工具,如 LinPEAS、WinPEAS 等。
用于连接和操作数据库,如 Navicat、DBeaver 等,辅助查看和管理数据库内容。
用于端口扫描、漏洞扫描、目录扫描,如 Nmap、Dirsearch、Gobuster 等。
包含反编译工具,如 IDA Pro、Ghidra、OllyDbg、x64dbg 等,用于分析二进制文件。
用于内网渗透,如 Mimikatz、Cobalt Strike、Metasploit 等,涉及横向移动、凭证窃取等。
用于处理二进制文件,如 Hex Editor、010 Editor 等。
用于配置代理转发,如 Frp、Ngrok 等,用于外网访问内网服务。
用于字典爆破,如 Hydra、Medusa 等,用于破解登录凭证。
Java、python、php 等运行环境的安装包,确保工具能正常运行。
专门用于测试跨站脚本漏洞的工具,如 XSStrike 等。
用于管理上传的 Webshell,如蚁剑、冰蝎等,便于后续操作。
对于初学者,建议在不知道学啥的事情可以先学学 Misc 培养兴趣,然后在不断的做题中思考自己感兴趣的方向。其次日后发展也是个很关键的事情,如果准备毕业后重试网络安全,那么就需要想好 Web、Pwn 这些方向的日后发展。可以干哪些岗位,而这些岗位需要的对应能力、发展空间、薪资等等。目前环境比早期好太多了,涌现出了大量优秀的平台和资源,关键在于坚持练习和总结 WriteUp。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online