一、什么是CTF?
CTF,即 Capture The Flag,中文名为夺旗赛,是一种网络安全技术人员之间进行技术竞技的比赛形式。
在 CTF 比赛中,参赛者需要通过解决各种与网络安全相关的技术挑战来获取“旗帜”,这些挑战通常涵盖了多个领域的知识和技能,例如密码学、Web 安全、逆向工程、漏洞挖掘与利用、隐写术、二进制分析等等。
比如说,在密码学相关的挑战中,可能需要参赛者破解加密的信息或算法来获取关键线索;Web 安全挑战可能要求找出网站存在的漏洞并加以利用;逆向工程则可能涉及对未知软件或程序的分析和理解。
CTF 比赛对于提升网络安全技术人员的实战能力、拓宽技术视野以及促进技术交流都具有重要意义。许多高校和企业都会组织或参与 CTF 比赛,以发现和培养优秀的网络安全人才。
二、CTF竞赛的类型?
CTF 竞赛的类型主要包括以下三种:
解题模式(Jeopardy):这是目前大多数国内外 CTF 比赛的主流形式。在此模式下,参赛队伍可以通过互联网或现场网络参与。题目会在比赛过程中陆续放出,涵盖逆向、漏洞挖掘与利用、Web 渗透、密码、取证、隐写、安全编程等多个类别。参赛队伍需要解决一系列不同类别的挑战,每个挑战都对应一定的分值,通常难度越高分值越大。解出一道题目后,提交题目对应的 flag 即可得分,比赛结束时按照得分高低来排名。这种模式与 ACM 编程竞赛、信息学奥赛比较类似,通常用于在线选拔赛;
攻防模式(Attack-Defense):该模式多数用于 CTF 决赛。参赛队伍在网络空间中互相进行攻击和防守,通过挖掘对方网络服务漏洞并进行攻击来得分,同时需修补自身服务漏洞以避免丢分。这种赛制可以实时通过得分反映出比赛情况,最终也以得分直接分出胜负。它不仅考验参赛队员的智力和技术,也对体力有要求(因为比赛一般会持续48小时及以上),同时还需要团队之间有良好的分工配合与合作;
混合模式(Mix):混合模式结合了解题模式与攻防模式。比如参赛队伍通过解题可以获取一些初始分数,然后通过攻防对抗进行得分增减的零和游戏,最终以得分高低分出胜负。采用混合模式 CTF 赛制的典型代表如 iCTF 国际 CTF 竞赛。
CTF 解题模式的题目类型通常有以下几种:
Web 安全:选手通过浏览器访问题目服务器上的网站,寻找网站漏洞,如 SQL 注入、XSS(跨站脚本攻击)、文件上传、包含漏洞、XXE、SSRF、命令执行、代码审计等,并利用这些漏洞获得服务器的部分或全部权限,以拿到 flag;
逆向工程(Reverse):题目是一个软件,通常没有软件的源代码。需要利用工具对软件进行反编译甚至反汇编,理解软件内部逻辑和原理,找出与 flag 计算相关的算法并破解该算法,从而获取 flag;
漏洞挖掘与漏洞利用(Pwn/Exploit):访问本地或远程的二进制服务程序,通过逆向工程找出程序中存在的漏洞,并利用漏洞获取远程服务器的部分或全部权限,拿到 flag;
密码学(Crypto):分析题目中的密码算法与协议,利用算法或协议的弱点来计算密钥或对密文进行解密,以获取 flag;
调查取证(Misc):也叫做“杂项”,利用隐写术等保护技术将信息隐藏在图像、音频、视频、压缩包中,或者信息就在一段内存镜像或网络流量中,尝试将隐藏的信息恢复出来即可获得 flag;
移动安全(Mobile):涉及对安卓和 iOS 系统的理解以及逆向工程等知识。
三、CTF需要学习那些知识?
参加 CTF 比赛通常需要学习以下几方面的知识:
编程语言:例如 C、Python、Java 等,用于编写破解程序、解决问题等。
计算机网络:了解网络协议、端口、IP 地址等基本概念和知识,这在解决与网络相关的挑战时必不可少。
操作系统:熟悉操作系统的基本概念,如进程、文件系统、权限管理等。
加密算法:掌握对称加密、非对称加密、哈希函数等加密算法的基本概念和原理。
网络安全理论:学习缓冲区溢出、栈和堆溢出、Shellcode 等知识,这些是 CTF 比赛中常见的知识点。
攻击手段:了解常见的恶意软件类型(如病毒、蠕虫、木马等)和攻击方法,以便更好地防范和应对攻击。
Web 安全:熟悉 Web 应用程序的基本原理和常见的安全漏洞,例如 SQL 注入、跨站点脚本攻击等。
另外,实践也非常重要,可以通过参加 CTF 比赛、利用 CTF 练习平台(如 HackTheBox、VulnHub、CTF365 等)进行练习,并参考他人的解题经验(Write-up)来提升自己的技能。
同时,持续学习和拓展知识也是关键。关注 CTF 社区、参加网络安全会议和讲座,以及学习开源软件等,有助于深入了解漏洞分析、二进制安全、逆向工程等高级知识和技能。
学习 CTF 需要时间和精力的投入,通过不断实践和积累经验,逐步提升自己在网络安全领域的能力。
四、参加CTF竞赛能收获啥?
参加 CTF 竞赛可以带来诸多收获,具体如下:
技术能力的提升:
深入掌握网络安全领域的核心知识和技能,如密码学、Web 安全、逆向工程等。
提高编程能力,尤其是在处理复杂逻辑和算法时。
学会运用各种工具和技术,如调试工具、加密解密工具等。
思维能力的锻炼:
培养逻辑思维和分析问题的能力,能够迅速拆解复杂的问题并找到解决方案。
锻炼创新思维,尝试不同的方法来突破难题
团队协作与沟通:
在团队参赛中,学会与不同背景和性格的队友合作,发挥各自的优势。
提高沟通效率,准确表达自己的想法和理解队友的观点。
就业优势:
为简历增添亮点,向潜在雇主展示在网络安全方面的实践经验和技术水平。
增加在网络安全相关企业和机构获得理想工作岗位的机会。
行业认可与荣誉:
在比赛中取得好成绩,能够获得行业内的认可和赞誉。
提升在网络安全社区的知名度。
人脉拓展:
结识来自全国各地甚至全球的网络安全爱好者和专业人士。
有机会与行业专家交流,获取更多的学习和发展机会。
学习资源与经验分享:
接触到最新的网络安全技术和趋势。
与其他参赛者交流学习经验和技巧,互相促进提高。
例如,有些参赛者通过参加 CTF 竞赛,成功进入了知名的网络安全公司,如 360、腾讯等;还有的参赛者在比赛中结识了行业内的专家,得到了进一步深造和合作的机会。总之,CTF 竞赛为参与者提供了一个全面提升自我的平台。
项目推荐
这个在github标星超过3800的宝藏项目,应该是每一个参加过C T F竞赛同学早就知道的吧。如果你看了很多视频书籍,还是学不懂CTF,那一定一定不能错过这个项目。
这个项目适合阅读的人群包括:
大学选择网安或信安专业的同学
对CTF感兴趣想入门的同学
已经入门CTF但陷入技术瓶颈的同学
需要CTF竞赛经验来充实履历的同学
整个项目文档一共1839页,项目名字叫做《CTF竞赛入门指南》,我用一个礼拜看完整个项目文档之后只想说一句,为啥我当时学习CTF的时候,没有好心人分享这种宝藏项目!
考虑到有些同学不会科学上网,我已经将整个项目文件都下载打包好了,粉丝可以直接抱走。
整个文档共分为8个板块,包含基础知识篇、工具篇、分类专题篇、技巧篇、高级篇、题解篇、实战篇、学术篇。
目录
第一章、基础知识篇
CTF 简介
学习方法
Linux 基础
Web 安全基础
逆向工程基础
密码学基础
Android 安全基础
第二章 、工具篇
虚拟化分析环境
静态分析工具
动态分析工具
其他工具
第三章、分类专题篇
Pwn
Reverse
Web
Crypto
Misc
Mobile
第四章、技巧篇
Linux 内核调试
Linux 命令行技巧
GCC 编译参数解析
GCC 堆栈保护技术
ROP 防御技术
one-gadget RCE
通用 gadget
使用 DynELF 泄露函数地址
shellcode 开发
跳转导向编程(JOP)
利用 __stack_chk_fail
利用 _IO_FILE 结构
glibc tcache 机制
利用 vsyscall 和 vDSO
第五章、高级篇
软件漏洞分析
模糊测试
动态二进制插桩
符号执行
数据流分析
污点分析
LLVM
程序切片
SAT/SMT
基于模式的漏洞分析
基于二进制比对的漏洞分析
反编译技术
第六章、题解篇
Pwn
Reverse
Web
Crypto
Misc
Mobile
第七篇、实战篇
CVE
Malware
第八章、学术篇
关于我
有不少阅读过我文章的伙伴都知道,大白曾就职于某大厂安全联合实验室。从事网络安全行业已经好几年,积累了丰富的技能和渗透经验。
大学期间,我参加过很多CTF比赛,打过护网,就职某大厂联合实验室的时候,也成功防范了各种网络攻击和漏洞利用,提高了互联网安全防护水平。
为了帮助大家减少搜集整理的工具的时间,大白也帮你整理好了全套CTF工具,可以说是非常全面和详细。
需要点击下方链接即可前往获取
[2024最新CSDN大礼包:《CTF入门全套学习资源包》免费分享]
一、基础环境
VSCode 最好用 最轻量的 文本编辑器 依靠扩展可实现包括但不限于 IDE 各种功能
VMware Workstation 虚拟机软件
PyCharm Python 集成开发环境 (IDE)
Python MISC 方向中用途最广的语言。
IDEA Java 集成开发环境 (IDE)
PHPStorm PHP 集成开发环境 (IDE)
PHPStudy Web 环境 (Apache / Nginx + FTP + MySQL) 快速部署 ,常用于 Web 初学阶段的一些本地 web 页面的搭建
Docker 容器服务 ,常用于 题目本地搭建测试 靶场环境,漏洞复现环境搭建等,除了静态附件题目,几乎所有的 CTF 题目都依赖 Docker
Navicat 优秀的数据库 管理 操作 调试 以及 可视化软件
Watt Toolkit GitHub Discord 部分谷歌服务 页面元素 CDN 访问加速 |不是用来让你打游戏的啊喂 (#`O′)!
Clash
二、常用工具
Maye Lite 专注于文件快速启动的简洁、轻量级工具
uTools 一个极简、插件化的现代桌面软件。
Everything 一款强大的本地文件索引和搜索工具
三、Web 安全
hackbar 浏览器插件,能够在页面上直接完成 请求 / 响应内容编辑,完成各种包括但是不限于伪造的工作。
Proxy SwitchyOmega 代理管理软件,方便一个浏览器多个代理端口的切换。
Wappalyzer 页面技术识别软件,方便快速定位页面的框架技术等信息
Burp Suite 代理抓包软件,用于 Web 应用程序的渗透测试和攻击
Antsword 开源 Webshell 管理工具
dirsearch 目录扫描工具
SQLMap 自动化的 SQL 注入利用工具
SuperSQLInjectionV1 C#开发的SQL注入辅助工具
JD-GUI Jar 包反编译工具
Ysoserial Java 反序列漏洞利用工具
冰蝎(Behinder) 具有优秀的加密传输特性的Webshell管理工具。
哥斯拉(Godzilla) 支持对载荷进行AES等各种加密,支持自定义Http头,支持内存shell,提供丰富的Webshell功能。
Weevely3 基于python编写,集webshell生成和连接于一身,采用c/s模式构建。
天蝎权限管理工具 基于冰蝎加密流量进行WebShell通信管理的原理,目前实现了jsp、aspx、php、asp端的常用操作功能,做出了许多优化。(已停止外部更新)
中国菜刀 PHP、ASP、ASPX webshell管理工具 对一些古老站点有奇效。(已停止维护)
Goby 集资产测绘和漏洞扫描 以及多样化功能插件于一身的扫描器。
Xray 一款功能强大的安全评估工具。
SuperXray Xray扫描器的GUI版本。
Vscan 开源、轻量、快速、跨平台 的网站漏洞扫描工具。
Afrog 高性能的漏洞扫描器。
Scaninfo 开源、轻量、快速、跨平台 的红队内外网打点扫描器。
OSV-Scanner 谷歌开源漏洞扫描器
Wpscan Wordpress漏洞扫描器
Nuclei 一款注重于可配置性、可扩展性和易用性的基于模板的快速漏洞扫描器,可通过yaml构建模板
OA-EXPTOOL OA综合利用工具,集合将近20款OA漏洞批量扫描
Apt_t00ls 高危漏洞利用工具
Railgun 具有GUI界面的渗透工具,集成了端口扫描、端口爆破、web指纹扫描、漏洞扫描、漏洞利用以及编码转换功能
Log4j2Scan Log4j漏洞探测
Ysoserial Java 反序列漏洞利用工具
Ysomap Java 反序列漏洞利用工具
SB-Scan(错乱 针对Spring Boot的开源渗透框架,主要用作扫描敏感信息泄露端点,可直接测试Spring的相关高危漏洞。
SpringBootExploit SpringBoot综合利用工具
ShiroAttack2 Shiro框架漏洞利用工具
Fastjson Fastjson扫描器,可识别版本、依赖库、autoType状态等
WeblogicTool WeblogicTool,GUI漏洞利用工具,支持漏洞检测、命令执行、内存马注入、密码解密等
Struts2-Scan Struts2漏洞利用扫描工具
JNDIExploit JNDI多功能利用工具
Thinkphp_gui_tools ThinkPHP漏洞综合利用工具
ThinkLog Tk3,5,6 日志泄漏批量下载
XSStrike XSS扫描器
PwnXSS XSS漏洞扫描利用工具
Dalfox xss漏洞扫描器
Commix All-in-One的自动化命令注入利用工具
LFISuite 本地文件包含利用工具
XXEinjector XXE利用工具
Fuxploider 文件上传利用工具
Fscan 内网扫描
Stowaway 内网穿透
SharpHostInfo 内网主机探测
LadonGo 内网渗透扫描
Neo-reGeorg 代理工具
需要点击下方链接即可前往获取
[2024最新CSDN大礼包:《CTF入门全套学习资源包》免费分享]
四、加密解密
CyberChef 近乎全能的编码解码工具。
Ciphey 自动化解密工具。
CTFCrackTools 国内首个 CTF 工具框架 , 内涵多个主流密码加解密,支持添加支持 Python 编写的插件。
Sagemath 开源的数学软件系统 , 整合了许多开源 Python 包。
Yafu 本地的因数分解程序
z3 开源的约束求解器,针对约束求解题型
PuzzleSolver MISC 综合解题工具,由 Byxs20 开发。
Factordb 在线的因数分解网站
Crypto 包 密码学工具库,用于在 Python 中实现各种加密、解密和哈希算法。
gmpy2 包 包含了许多常用的数论函数和算法,适配各种大整数情况,算法效率高于原生库。
numpy 包 基于 C 代码实现了底层数据结构和计算函数优化,适用于处理大型数据集和高性能计算,在密码学中常用于矩阵类运算。
五、密码爆破
ZipCenOp 伪加密加 / 解密工具
ARCHPR 压缩文件密码暴力破解工具。
Ziperello zip 压缩包密码恢复软件。
Aopr Office 文件密码暴力破解工具。
Passware Kit Forensic 十分强大的解密工具,各类文件 / 磁盘密码爆破,密钥搜索等
Hashcat 高性能,GPU/CPU 兼容的本地密码破解,支持多种不同格式
John the Ripper 简单易用的离线破解
Hydra 远程或在线密码的并行暴力破解。
网络安全工程师技术好学吗?
不过在学习之前,我们需要有一个高效的网络安全学习计划,这能帮助我们少走很多弯路,快速上手和就业!
网络安全学习路线&学习资源

网络安全的知识多而杂,怎么科学合理安排?
下面给大家总结了一套适用于网安零基础的学习路线,应届生和转行人员都适用,学完保底6k!就算你底子差,如果能趁着网安良好的发展势头不断学习,日后跳槽大厂、拿到百万年薪也不是不可能!
初级网工
1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)
2、渗透测试基础(一周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等
3、操作系统基础(一周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)
4、计算机网络基础(一周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现
5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固
6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)
恭喜你,如果学到这里,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web 渗透、安全服务、安全分析等岗位;如果等保模块学的好,还可以从事等保工程师。薪资区间6k-15k
到此为止,大概1个月的时间。你已经成为了一名“脚本小子”。那么你还想往下探索吗?
7、脚本编程(初级/中级/高级)
在网络安全领域。是否具备编程能力是“脚本小子”和真正黑客的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力.
零基础入门,建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习; 搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP, IDE强烈推荐Sublime; ·Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,不要看完; ·用Python编写漏洞的exp,然后写一个简单的网络爬虫; ·PHP基本语法学习并书写一个简单的博客系统; 熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选); ·了解Bootstrap的布局或者CSS。
8、超级网工
这部分内容对零基础的同学来说还比较遥远,就不展开细说了,贴一个大概的路线。感兴趣的童鞋可以研究一下,不懂得地方可以【点这里】加我耗油,跟我学习交流一下。
网络安全工程师企业级学习路线
如图片过大被平台压缩导致看不清的话,可以【点这里】加我耗油发给你,大家也可以一起学习交流一下。
一些我自己买的、其他平台白嫖不到的视频教程:
需要的话可以扫描下方卡片加我耗油发给你(都是无偿分享的),大家也可以一起学习交流一下。

结语
网络安全产业就像一个江湖,各色人等聚集。相对于欧美国家基础扎实(懂加密、会防护、能挖洞、擅工程)的众多名门正派,我国的人才更多的属于旁门左道(很多白帽子可能会不服气),因此在未来的人才培养和建设上,需要调整结构,鼓励更多的人去做“正向”的、结合“业务”与“数据”、“自动化”的“体系、建设”,才能解人才之渴,真正的为社会全面互联网化提供安全保障。
特别声明:
此教程为纯技术分享!本书的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本书的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失!!!