【2025年最新】零基础小白如何入门CTF,看这一篇就够了(附学习笔记、靶场、工具包)

目录
  • CTF简介:
  • 一、CTF入门
    • 1.1、CTF常识
    • 1.2、CTF竞赛模式
  • 二、CTF赛事发布网站
  • 三、CTF在线靶场
  • 四、漏洞靶场
  • 五、CTF工具包
  • 六、学习路线

CTF简介:

CTF(Capture The Flag)中文一般译作夺旗赛,在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。发展至今,已经成为全球范围网络安全圈流行的竞赛形式

  • CTF靶场:CTF刷题,在校生备战CTF比赛,信安入门、提升自己、丰富简历之必备(一场比赛打出好成绩,可以让你轻松进大厂,如近期的各种CTF杯),在职人员可以工作意外提升信安全技能。

  • 渗透实战靶场:挖洞、渗透实战(web、域、横向渗透),适合实战能力需要大幅度提升的同学。
    在这里插入图片描述

一、CTF入门

最近很多朋友在后台私信我,问应该怎么入门CTF。个人认为入门CTF之前大家应该先了解到底什么是CTF,而你学CTF的目的又到底是什么;其次便是最好具备相应的编程能力,若是完全不具备这些能力极有可能直接被劝退。毕竟比赛的时候动不动写个脚本,搞个审计的。

废话结束

对于CTF入门,现在环境比15、16年我刚接触时好太多了,当年各类资源少的可怜,SQL注入绕WAF已经算是难题了。而目前国内的氛围明显好太多了,涌现出了大量优秀的平台。作为初学者往往会遇到一个很关键的问题:该学哪个方向?

个人感觉,在不知道学啥的事情可以先学学Misc培养兴趣,然后在不断的做题中思考自己感兴趣的方向。其次日后发展也是个很关键的事情,如果准备毕业后从事网络安全,那么就需要想好Web、Pwn这些方向的日后发展。可以干哪些岗位,而这些岗位需要的对应能力、发展空间、薪资等等。

1.1、CTF常识

CTF比赛知识范围大致分为: Web安全、PWN(二进制安全)、Reverse(逆向破解)、Crypto(密码学安全)、Forensics(数字取证)、Misc(杂项)

  • Web安全

CTF中的Web题型,就是给定一个Web网站,选手要根据题目所提示的信息,找到网站上的flag字符串。做题的方法类似于渗透测试,但通常不会是一个完整的渗透测试,而是用到渗透测试中的某一个或某几个环节。

可能涉及信息搜集、各类漏洞发现与利用、权限提升等等。 为了获取flag,可能需要拿到管理员权限,数据库权限,甚至获取网站所在服务器的权限。

所需知识: 语言:PHP、Python、JavaScript… 数据库:MySQL、MSSQL… 服务器:Apache、Nginx… Web框架:ThinkPHP、Flask… 语言特性:弱类型、截断… 函数特性:is_numeric、strcmp等;

  • PWN

PWN在安全领域中指的是通过二进制/系统调用等方式获得目标主机的 shell。CTF 中主要考察二进制漏洞的发掘和利用,需要对计算机操作系统底层 有一定的了解。在 CTF 竞赛中,PWN 题目主要出现在 Linux 平台上。

所需知识: C/C++编程语言基础、编译原理、汇编、反汇编、操作系统、加密与解密、堆栈原理、栈溢出、堆溢出…

  • Reverse

CTF之REVERSE题目涉及到软件逆向、破解技术等,要求有较强的反汇编、反编译扎实功底。需要掌握汇编,堆栈、寄存器方面的知识。有好的逻辑思维能力。主要考查参赛选手的逆向分析能力。

所需知识: 汇编、反汇编、堆栈、调试器、代码分析、OllyDBG、IDA等

  • Crypto

CTF之CRYPTO部分题目考察各种加解密技术,包括古典加密技术、现代加密技术甚至出题者自创加密技术。

所需知识: 数学知识、密码编制、密码破解、古典密码、现代密码、密码分析;

  • Forensics

CTF之FORENSICS包括文件格式分析,隐写术,内存转储分析或网络数据包捕获分析,提取静态数据文件中隐藏的信息的任何挑战都可以归为这一类

所需知识: 数据恢复、磁盘取证、内存取证、流量分析、文件隐写;

  • Misc

就是除上述之外的乱七八糟的网络安全范围内的东西,英文全称为 Miscellaneous,意思是混杂的、各种各样的。MISC 题通 常包括文件分析、图像隐写、数据搜索、内存镜像分析和流量分析等。 题型多样,脑洞大,趣味性强是 MISC 题型的主要特点。

所需知识: 信息隐藏、文件格式、内存镜像、流量分析、数据分析、社会工程等;
在这里插入图片描述

1.2、CTF竞赛模式

  • 解题模式(Jeopardy)

在解题模式CTF赛制中,参赛队伍可以通过互联网或者现场网络参与。这种模式的CTF竞赛与ACM编程竞赛、信息学奥赛类似,以解决网络安全技术挑战题目的分值和时间来排名,通常用于在线选拔赛,选手自由组队(人数不受限制)。

题目主要包含六个类别:RE逆向工程、Pwn漏洞挖掘与利用、Web渗透、Crypto密码学、Mobile移动安全和Misc安全杂项。

  • 攻防模式(Attack-Defense)

在攻防模式CTF赛制中,参赛队伍在网络空间互相进行攻击和防守,通过挖掘网络服务漏洞并攻击对手服务来得分,通过修补自身服务洞进行防御来避免丢分。攻防模式通常为线下赛,参赛队伍人数有限制(通常为3到5人不等),可以实时通过得分反映出比赛情况,最终也以得分直接分出胜负。

这是一种竞争激烈、具有很强观赏性和高度透明性的网络安全赛制。在这种赛制中,不仅仅是比参赛队员的智力和技术,也比体力(因为比赛一般都会持续48小时及以上),同时也比团队之间的分工配合与合作。

  • 混合模式(Mix)

结合了解题模式与攻防模式的CTF赛制,主办方会根据比赛的时间、进度等因素来释放需解答的题目,题目的难度越大,解答完成后获取的分数越高。参赛队伍通过解题获取一些初始分数,然后通过攻防对抗进行得分增减的零和游戏,最终以得分高低分出胜负。

采用混合模式CTF赛制的典型代表如iCTF国际CTF竞赛。

二、CTF赛事发布网站

i春秋: https://www.ichunqiu.com/competition

XCTF社区:https://time.xctf.org.cn

CTFwiki(入门必看wiki): https://ctf-wiki.github.io/ctf-wiki/#/introduction

CTFrank: https://ctfrank.org/

CTFtime(基本都是国外的): https://ctftime.org

三、CTF在线靶场

1、BugkuCTF(经典靶场,难度适中,适合入门刷题,题量大)

https://ctf.bugku.com/

2、北京联合大学BUUCTF(新靶场,难度中上,搜集了很多大赛原题)

https://buuoj.cn/

3、CTFSHOW:(新靶场,题量大,很多大赛会从中抽原题)

https://ctf.show/challenges

4、XCTF攻防世界:

https://adworld.xctf.org.cn/task

上面4个靶场是我常去的,BugkuCTF很久以前就刷了一遍,BUUCTF刷了有70%,CTFSHOW最近一直在刷,XCTF攻防世界以前有内网渗透实验,现在主要上去刷CTF。

5、实验吧:

http://www.shiyanbar.com(2017年刷过一遍,目前站一直更新)

**6、安恒周周练:**https://www.linkedbyx.com/home

7、XSS专练:https://xss.haozi.me/tools/xss-encode/

8、南京邮电大学CTF网络攻防训练平台: http://ctf.nuptzj.cn/

9、网络信息安全实验平台 http://hackinglab.cn/index.php

四、漏洞靶场

1. DVWA(必练):Web安全入门必刷的靶场,包含了最常见的web漏洞,界面简单易用,通过设置不同的难度,可更好地理解漏洞的原理及对应的代码防护

http://www.dvwa.co.uk

2. Sqli-Labs(必练):一个印度大神程序员写的,用来学习sql注入的一个游戏教程,目前65关,冲关过程中学注入。

https://github.com/Audi-1/sqli-labs

3. Upload-labs(必练):一个和sqli-labs类似的靶场平台,专门学习文件上传的,目前21关。

https://github.com/c0ny1/upload-labs

4. BWVS(老版本bugku的离线版)

https://github.com/bugku/BWVS

5. BWAPP:

https://sourceforge.net/projects/bwapp

6. WAVSEP:

https://github.com/sectooladdict/wavsep

7. VulnStack:

http://vulnstack.qiyuanxuetang.net/vuln

8. Webug 3.0:

https://pan.baidu.com/s/1eRIB3Se

9. Metasploitable:

https://github.com/rapid7/metasploitable3

10. DVWA-WooYun:

https://sourceforge.net/projects/dvwa-wooyun

11. OWASP Mutillidae:

https://sourceforge.net/projects/mutillidae

12. Web for Pentester:

https://www.pentesterlab.com/exercises/web_for_pentester

在这里插入图片描述

五、CTF工具包

CTF大赛, 俗话说“兵马未动,粮草先行”。打CTF手里的武器工具少不了,CTF比赛有些线下赛,不提供互联网环境,这就更需要开战前把工具包准备好了。

工具包目录:

六、学习路线

网络安全学习路线&学习资源在这里插入图片描述

网络安全的知识多而杂,怎么科学合理安排?

下面给大家总结了一套适用于网安零基础的学习路线,应届生和转行人员都适用,学完保底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、超级网工

这部分内容对零基础的同学来说还比较遥远,就不展开细说了,贴一个大概的路线。感兴趣的童鞋可以研究一下,不懂得地方可以【点这里】加我耗油,跟我学习交流一下。

网络安全工程师企业级学习路线

如图片过大被平台压缩导致看不清的话,可以【点这里】加我耗油发给你,大家也可以一起学习交流一下。

一些我自己买的、其他平台白嫖不到的视频教程:

需要的话可以扫描下方卡片加我耗油发给你(都是无偿分享的),大家也可以一起学习交流一下。

网络安全学习路线&学习资源在这里插入图片描述

结语

网络安全产业就像一个江湖,各色人等聚集。相对于欧美国家基础扎实(懂加密、会防护、能挖洞、擅工程)的众多名门正派,我国的人才更多的属于旁门左道(很多白帽子可能会不服气),因此在未来的人才培养和建设上,需要调整结构,鼓励更多的人去做“正向”的、结合“业务”与“数据”、“自动化”的“体系、建设”,才能解人才之渴,真正的为社会全面互联网化提供安全保障。

特别声明:

此教程为纯技术分享!本书的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本书的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失!!!

<think>好的,用户想撰写关于CTF密码学的学习笔记总结,我需要根据他之前提供的引用资料以及之前的回答来组织内容。首先,用户之前的回答已经涵盖了Web方向的内容,现在转向密码学,所以需要确保结构清晰,覆盖关键知识点。 用户提供的引用中,引用[1]提到CTF密码学核心是现代密码学,但编码和古典密码可能在MISC中出现,所以应该在笔记中包含这两个部分,但重点放在现代密码学。引用[2]和[3]涉及古典密码和编码技术,比如ROT13、替换密码、摩尔斯电码等,这些可以作为基础部分。引用[4]详细说明了RSA的生成步骤,需要涵盖RSA、DH密钥交换、ECC等现代密码算法。 用户之前的问题中,助手给出了快速排序的总结和相关问题,因此这次回答也需要保持类似的结构:分章节、代码块、问题生成,并且正确使用引用标记。需要检查是否所有LaTeX公式都正确,比如RSA中的公式要用$$...$$,行内公式用$...$。 另外,用户可能希望学习笔记包含实战技巧和工具,比如使用Python库进行解码或分解大数,所以需要添加相关代码示例,比如用pycryptodome库实现RSA,或者用sagemath分解n。同时,CTF常见题型如RSA相关攻击、流密码分析、哈希碰撞等需要作为例题解析,帮助理解应用场景。 还要注意引用标记的正确使用,每个引用来源在回答中对应到用户提供的引用[1]到[4],确保每个知识点如果来自引用资料,就标注对应的引用编号。例如,RSA的生成步骤来自引用[4],古典密码的解题方法来自引用[2]和[3]。 最后,生成的相关问题需要与密码学相关,可能包括如何识别加密算法、RSA的常见攻击方式、古典密码的解题技巧等,确保问题能帮助用户进一步深入学习。</think>### CTF密码学学习笔记总结 --- #### 一、知识体系框架 1. **基础编码技术** - **ASCII/Base系列**:Base64(末尾补`=`)、Base32(补`=`且字母表限制)、Base16(直接映射)[^1] - **特殊编码**:摩尔斯电码(短长信号映射)、URL编码(`%xx`格式)、HTML实体编码(如`<`) ```python # 示例:Base64解码 import base64 cipher = "aXRvbHl0d250cGFjZg==" plain = base64.b64decode(cipher).decode('utf-8') ``` 2. **古典密码** - **替换类**:凯撒密码(ROT13为特例)、维吉尼亚密码(多表替换)[^2] - **置换类**:栅栏密码(如引用[^3]的分组提取)、列置换密码 $$ \text{明文:CRYPTO} \xrightarrow{\text{栅栏分组}} \begin{bmatrix}C & R \\ Y & P \\ T & O\end{bmatrix} \xrightarrow{\text{按列提取}} CYTRPO $$ 3. **现代密码学核心** - **对称加密**:AES(ECB/CBC模式)、DES(弱密钥问题) - **非对称加密**:RSA(依赖大数分解难题)、ECC(椭圆曲线离散对数问题) - **哈希函数**:MD5(碰撞攻击)、SHA-1(已不推荐) --- #### 二、核心算法与实现(以RSA为例)[^4] 1. **密钥生成** $$ \begin{aligned} &\text{随机素数 } p, q \rightarrow N = p \cdot q \\ &\varphi(N) = (p-1)(q-1) \\ &\text{选 } e \text{ 满足 } \gcd(e, \varphi(N))=1 \\ &\text{求 } d \equiv e^{-1} \mod \varphi(N) \\ &\text{公钥:}(e, N) \quad \text{私钥:}(d, N) \end{aligned} $$ 2. **加解密过程** $$ \text{加密:} c \equiv m^e \mod N \quad \text{解密:} m \equiv c^d \mod N $$ 3. **CTF常见攻击场景** - **小公钥指数攻击**(如$e=3$时直接开立方) - **共模攻击**(相同$N$不同$e$) ```python # 示例:使用pycryptodome库实现RSA解密 from Crypto.PublicKey import RSA key = RSA.construct((N, e, d)) plain = pow(ciphertext, d, N) ``` --- #### 三、解题技巧与工具 1. **特征识别** - **RSA参数**:大整数$N$、特殊$e$(如65537)、残缺的$p/q$ - **流密码**:重复密钥(如RC4)、已知明文攻击 2. **实用工具** - **分解大数**:`yafu`(快速分解$N$)、`factordb`(在线查询) - **编码转换**:CyberChef(集成多种编码) ```bash # 示例:使用sagemath分解N n = 123456789 factor(n) # 返回质因数分解结果 ``` 3. **典型题型解析** - **RSA模数分解**:当$N$较小时直接爆破,或利用Pollard's Rho算法 - **哈希长度扩展攻击**:针对未加盐的MD5/SHA1 $$ \text{攻击构造:} \text{Hash}(secret \| data) \rightarrow \text{扩展} \text{Hash}(secret \| data \| padding \| append) $$ --- #### 四、学习路径与资源 1. **靶场推荐** - **Crypto-Cat**:基础密码学挑战 - **picoCTF Crypto模块**:从古典密码到现代密码过渡 2. **知识拓展** - **数学基础**:模运算、欧几里得算法、中国剩余定理 - **进阶协议**:Diffie-Hellman密钥交换、数字签名(DSA) ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值