概括的非常好的CTF方向学习(转载)

本文提供了一条学习Web开发和密码学的路径,强调实践、刷题和信息检索,涵盖HTTP、Linux基础、前端语言、后端语言、数据库、脚本语言、工具使用、CTF技巧以及加密与逆向工程基础知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Web 方向

如何入门
了解基本的计算机网络知识,能读懂 HTTP 报文
了解基本的 Linux 知识,会使用基本命令(如 cd ls cat 等),可以尝试学习一种可以在 Linux 下
使用的文本编辑器 < Vim 必知必会>
对前端语言有大致了解,可以读懂 HTML、JavaScript,参考 MDN Web 文档
学习一种或几种后端语言,建议从 CTF 比赛中最常见的 PHP 入手,至少做到能读懂代码,再尝试
自己构建简单的页面,之后可继续学习 Python(比赛中较常见)、JAVA 等不同的后端语言,参考
PHP Manual、Flask 文档
学习并掌握一种脚本语言(如 Python),了解其与 Web 相关的常用库(如 Python 的
Requests),运用脚本语言解决 Web 相关问题,Python 学习参考 Python3 - 菜鸟教程、
Requests 文档
学习数据库相关知识及 SQL 语言,了解 MySQL 数据库的基本使用,参考 SQL - 菜鸟教程、
MySQL - 菜鸟教程
善用文档,善用搜索引擎
多做题,多看别人的 Write-up <某种意义上来说这不起眼的一点最重要,上面的不管都行,以这
个为基础去学习也算是一条路子>
……
参考资料
CTF-Wiki <Web🐶过一下目录知识,这个 wiki 上的 Pwn 更适合学习>
《HTTP权威指南》 书比较厚 挑用得上的读 <报文看多了就会了,见一个搜一个>
《细说PHP》 同上 <没看过,不作评述>
《Web安全深度剖析》 相对讲得基础一点 <学习常见基础漏洞点,比下面那本开头讲一些安全概念
来的更直接>
《白帽子讲Web安全》 <经典之作,与上面那本属于同一类>
《Web之困:现代Web应用安全指南》 <没看过,不作评述>
《Web安全学习笔记》 基本知识可以简单过一遍了解下 <梳理了一些目录,学 Web 还是得深入去
理解掌握→多尝试、复现>
常用工具
<加是推荐的必备工具,others可能更倾向于实际应用环境,(招新)夺旗赛不太用得上>
Burp Suite
AntSword
sqlmap
Nmap
Chrome/Firefox 开发者工具及常用插件(如 HackBar)
Metasploit (招新应该不会有这种渗透内容吧。。。大概?
GitHub 上各种奇奇怪怪的脚本
<没啥,看看就好👇>

<碎碎念 by Casio3>

众所周知,精华总是在扯淡的时候流露的,下面就和小编一起来看看本篇文档的精华吧😋
How to:
怎么学 是很多人的疑问,在请教过北方姐姐之后,小编发现有如下的一些学习方式:
看书、看视频
刷题、学习大佬博客
直接啃 paper ?
归根结底,每个人都有自己的学习方式,高效的自主学习能力是你存活的保障。
某知名大黑阔、CTFer 也曾说过 CTF 比的就是信息快速检索和吸收的能力。
不过目前普遍的人认为看书比视频来得快,刷题比啃书来得快,
正确与否不予评述,根据本人经验来说,直接做题会让你快速学习并应用到某一个具体的点上,而看书
更有利于构建体系化的知识与视角,至于视频,则和视频的质量关系很大,但本人没怎么看过所以也对
比不出什么叫优质的学习视频
不管怎么说,实践、实践、实践出真知(实践也忘了的话就 take notes & review保持热烈,还有对于技术的热爱与探索💖

What to:

私以为 如何入门 里的内容只是参考,照着上面那样去一块儿块儿看知识不适用于快速拔高技能形成总的
体系概念
为什么这么说呢,因为小编就没怎么看过 如何入门 的内容
cg 教导我 Web 没有学习路线,究其原因还是内容太多太杂,
遇水涉水、见山开山,遇到问题快速搜集信息并掌握知识然后解决之,sounds cool?

※我需要做什么 VS 我要做什么:

需要做的自然是进入这个领域对你提出的知识与技能要求,根据学习路线一步步去修炼自己,这也
是常规意义上给出的一些学习建议、知识点——在 Web 安全这一块希望你能尽快掌握常见的漏洞
点(相信以你的信息检索能力应该能找到他们都是些什么)。从本人经历来谈,遇到一个漏洞点学
一个,这样结合实际点位更容易吸收掌握并且能有即时应用的正反馈保持学习热情,如果你习惯顺
着书目先把大部分点位阅读一遍也可以,在不长也不短的招新期间有很多方式去提升自己。
如此也自然引出了“我要做什么“的话题,多姿多彩的大学生活里请给到自己合理的规划。如果你对
计算机的世界都还没有总括的认识的话,一些基础的信息、技能都是要主动去获取的。在有足够的
信息的基础上才能更清晰的认知到自己是否对某个领域有兴趣,从而发展成主观上的“我要”。对不
同方向有了更多的了解(包括但不限于本室招新方向,还有比如机器学习、嵌入式开发、游戏开发
等),主动去汲取知识才是可取之道。
<这个话题也囊括了整个大学生涯规划,就业、保(考)研、出国?自己的专业本科就业的形势怎么
样?电子科大专业保研率?出国的需求还有出路有哪些?在自己当前专业的领域又有哪些发展方
向,不仅仅是网络安全这一块,IT 这个行业技术迭代过快,很多东西老师课堂上教不了或不够深入
的都需要自己去学,这些都需要去了解后确定自己喜欢做的。既然能进群并将这份文件看到这儿,
相信你是有一定的意识去获取信息的😆,加油去找到自己感兴趣的方向并为之努力吧(千万不要
随波逐流看大家都做啥我就做啥最后陷入迷茫)>
还有很多有意思的东西不是在知识树上的: Windows Terminal 舒爽眼睛再添上WSL、VPS,如何
自建梯子,拥有一个持续更新的博客的好处,拒绝流氓全家桶、国产套壳浏览器,为什么用
Google 不用 Baidu,为什么 优快云 盛产劣质抄袭文章,怎么玩路由器透明代理,局域网做一个云
盘,做一个私人 BT 下载器,Tampermonkey 的玩法,IDM下载的优势,装一个 Arch Linux,树
莓派怎么玩,python 实现成电讲坛抢票。。。那些可能更倾向于 Geek 的玩法(作为一个 Web 手
难道不应该对什么都感兴趣吗)看起来扯远了其实还是在说发挥主观能动性的事,在这个过程中也
能有更多的体会。

Crypto 方向

密码学是网络安全的基石
数学基础

素数、质因数相关性质
同余:定义及性质、模运算及运算定律、快速幂
逆元
gcd、扩展 gcd、中国剩余定理
欧拉函数、费马小定理
二次剩余、高次剩余
概率
离散对数
离散数学
etc.

语言基础

Python 3 基础语法及常见编码知识(bin, hex, bytes, base64, etc.)
安装并使用 Python 的非官方库 pycryptodome
有时需要用到Python 2
C++ 基础语法 (※)
Sage 的函数使用 (※)
(※) 表示如果有时间有兴趣,可以去拓展学习
密码协议
古典密码:凯撒,维吉尼亚,etc
流密码:RC4, LFSR
块密码:DES, AES 及其分组模式和填充规则 (padding)
非对称加密:RSA, ECC, ElGamal
哈希:MD
etc.

进阶 Crypto 应该学些什么?

学习如何分析程序的时间 / 空间复杂度
学习各种攻击方式及套路
格密码相关
寻找国内外 CTF 比赛的 Crypto 原题(除了古典密码学和脑洞题),了解思路,感受思维
相关资料
CTF Wiki - Crypto Crypto 相关知识介绍
Crypto CTF 各类 Crypto 题目合集
CTFtime CTF 比赛汇总
Project Euler 各类数论题目合集

如何学?怎么学?应该注意什么?

  1. 保持热情,保持耐心,不要恐惧、泄气,遇到特别晦涩难懂的知识
    可以暂时跳过,回头再看
  2. 使用搜索引擎搜索你想学 / 你不知道的东西
  3. 如果不知道该学什么,阅读上述内容或 CTF Wiki - Crypto 部分 的介绍
  4. 做题时应学会去了解探索题目所涉及的密码体系及可能的攻击方式
  5. 招新可以只针对题目学习,花大量时间看书系统学习不一定有必要,而且时间不一定足够
  6. Crypto 对数学素养、算法分析、模型流程归纳的要求较高,而许多人不喜欢数学,做题没有耐
    心,就会导致 明明是个水题却没人做 的奇异现象。希望你能正视并克服入门时遇到的困难,解决
    本方向的所有题目。
  7. 如果你有什么问题实在无法解决或者有什么建设性意见,可以咨询学长们

Reverse 方向做题须知

Reverse 题目通常是一个二进制可执行文件(exe in Windows,elf in Linux),通过逆向工具的使用和脚本的编写来获得 Flag

逆向分析可分为静态和动态,题目往往需要逆向出其基本逻辑才能获得 Flag

在题目中,程序往往会通过反调试语句,无效指令,垃圾代码来干扰分析,在做题中不要执着于某一个函数的作用,而应该从整体出发来分析逻辑

Reverse 的题目出题广泛,跨度有些很大,希望大家能熟练掌握搜索引擎的使用

注:题目下载链接如果显示有风险,那么是正常的,如果还是担心的话可以和出题人反馈一下,换一种下载方式

Reverse 基础

在学习的过程能逐渐掌握基本的 静态分析 —— IDA 的灵活使用

在做题的过程能了解并应用动态分析去分析程序 —— dbg 的基本使用

了解并知道 C 的基本语法 —— Hex-Rays 插件的使用

在做题的过程中养成基本的脚本编写能力 —— Python 和 C 语言的脚本编写

在学习的过程中养成良好的网络搜索和学习能力 —— 查找 WP 以及 相关文献

Reverse 工具

IDA pro —— 静态分析利器

x64dbg —— Windows 动态调试器

Jadx —— Android 逆向工具

Pwngdb / IDA 远程调试 —— Linux 平台动调工具

其他

爱盘(逆向工具汇总)

CTF-wiki(如名,很有用的学习指南)

《从 0 到 1 CTFer 成长之路》:CTF 推荐书

《逆向工程核心原理》:专门讲动态调试的书,实际逆向的入门书

PWN方向

Pwn 题目通常由是一个 ELF 文件 和一个地址与端口构成,通过逆向分析出程序的漏洞再用 Pwntools 远程链接劫持服务器得到 Flag

Pwn 的题目通常会是一个服务场景,做题时可以用 checksec 来看其开了什么保护,然后再静态分析其漏洞

用来攻击服务器的脚本通常用 Python 的 Pwntools 库编写

注:题目下载链接如果显示有风险,那么是正常的,如果还是担心的话可以和出题人反馈一下,换一种下载方式

Pwn 基础

基本的 静态分析 能力 —— 基本程序逻辑的理解

C 的基本语法 —— Hex-Rays 插件的使用

基本的脚本编写能力 —— Python 的脚本编写

较强的网络搜索能力 —— 查找漏洞种类

基本的汇编语言 —— 了解底层的运作机制

基础的程序结构以及函数调用,堆,栈等知识

Pwn 工具

IDA pro —— 静态分析利器

Pwngdb / IDA 远程调试 —— Linux 平台动调工具

Python + Pwntools —— 脚本编写

netcat —— “瑞士军刀”

Google && CTF-wiki —— 查询漏洞

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值