从零开始学习CTF

前言


CTF简介

中文一般译作夺旗赛,在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式
CTF起源于1996年DEFCON全球黑客大会,以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式

竞赛模式

解题模式:

在解题模式CTF赛制中,参赛队伍可以通过互联网或者现场网络参与,这种模式的CTF竞赛与ACM编程竞赛、信息学奥赛比较类似,以解决网络安全技术挑战题目的分值和时间来排名,通常用于在线选拔赛。题目主要包含逆向、漏洞挖掘与利用、Web渗透、密码、取证、隐写、安全编程等类别。


攻防模式:

在攻防模式CTF赛制中,参赛队伍在网络空间互相进行攻击和防守,挖掘网络服务漏洞并攻击对手服务来得分,修补自身服务漏洞进行防御来避免丢分。攻防模式CTF赛制可以实时通过得分反映出比赛情况,最终也以得分直接分出胜负,是一种竞争激烈,具有很强观赏性和高度透明性的网络安全赛制。在这种赛制中,不仅仅是比参赛队员的智力和技术,也比体力(因为比赛一般都会持续48小时及以上),同时也比团队之间的分工配合与合作。


混合模式:

结合了解题模式与攻防模式的CTF赛制,比如参赛队伍通过解题可以获取一些初始分数,然后通过攻防对抗进行得分增减的零和游戏,最终以得分高低分出胜负。采用混合模式CTF赛制的典型代表如iCTF国际CTF竞赛。

预选赛

都是线上比赛,比赛形式几乎都是解题模式。进入官方提供的网站,登录账号密码后会到一个页面,题目按类别分类(后续会讲有什么类别),点击后提供题目链接、题目信息、题目提示和flag(答案)提交,提交后会得到分数。其中,一血、二血、三血拿的分数比较高,后面答该题的队伍拿的分数就一样了,答题的队伍越少,分数就越多,然后按分数排名,确定进入决赛的队伍。
如:一道签到题,开始定的分为500,当有队伍提交正确的flag,那么分数就会下降,下降到470/450这样的,人数越多,分数下降幅度越大。而一血二血三血获得分数会高于后续答题正确的

总决赛

几乎都是线下赛,进行混合模式,因为攻防模式的题目容易出现易守难攻、比速度节题这种学习不到知识的问题,也因为这样,大部分的总决赛都是以逆向为主,很容易变成逆行大赛。那么像web选手去干吗呢?喝茶打杂去吧!


二、题目分类


题目一般为6大类:

1.Web(网络安全)

Web是CTF竞赛中主要的题型之一,题目涉及到许多常见的WEB漏洞,诸如XSS、文件包含、代码执行、上传漏洞、SQL注入。也有一些简单的关于网络基础知识的考察,例如返回包、TCP-IP、数据包内容和构造。可以说题目环境比较接近真实环境。

所需知识点:PHP、Python、SQL(以mysql为主)、TCP-IP、linux命令、html、javascript等。


2.MISC(安全杂项)

MISC是大型CTF竞赛的题目难度很大,是一个可以拉开分数的类型,而在小型竞赛和题库中却难度不大。题目涉及隐写术、流量分析、电子取证、人肉搜索、数据分析、大数据统计等等,覆盖面比较广,主要考查参赛选手的各种基础综合知识。

所需知识点:熟悉使用众多隐写工具、流量审查工具、了解编码等。


3.Crypto(密码学)

主要包括古典密码学和现代密码学两部分内容,古典密码学趣味性强,种类繁多,现代密码学安全性高,对算法理解的要求较高。

所需知识点:矩阵、数论、古典密码学、算法等。


4.Reverse(逆向)

题目涉及到软件逆向、破解技术等,要求有较强的反汇编、反编译扎实功底。主要考查参赛选手的逆向分析能力。

所需知识点:汇编语言、加密与解密、常见反编译工具。


5.Mobile(移动安全) 

主要介绍了安卓逆向中的常用工具和主要题型,安卓逆向常常需要一定的安卓开发知识,iOS 逆向题目在 CTF 竞赛中较少出现,因此不作过多介绍。


6. PWN(二进制安全)

PWN在黑客俚语中代表着攻破,取得权限,在CTF比赛中它代表着溢出类的题目,其中常见类型溢出漏洞有栈溢出、堆溢出。主要考察参数选手对漏洞的利用能力。

所需知识点:C,OD+IDA,数据结构,操作系统。


7.(区块链)

-近来多个CTF比赛均出现区块链题目,区块链应用越来越成为热门应用,在未来区块链会成为一个重点。因为没有接触过,这里不详细讲。

三、怎么入门

入门这一块是我们这些新手的一道大大的门槛,很多人都是不知道怎么入门。

个人入门步骤

1.确定方向

一般分为两个方向

A 方向:PWN+Reverse+Crypto 随机搭配
B 方向:Web+Misc 组合
Misc 所有人都可以做

入门知识:
都要学的内容:Windows 基础、Linux 基础、计算机组成原理、操作系统原理、网络协议分析
A 方向:IDA 工具使用(fs 插件)、逆向工程、密码学、缓冲区溢出等
B 方向:Web 安全、网络安全、内网渗透、数据库安全等前10的安全漏洞

2.怎么刷题

刷题非常重要,很多人在其他ctf入门教程中都可以看到刷题是第一步,也是进阶的重要一步

例题1:bugku中的web2
打开题目发现一堆笑脸疯狂向你怼来,而且速度越来越快,那么这一题怎么做呢?

web2 这一题考察的是信息收集。在Chrome(谷歌浏览器)点击f12,就可以打开控制台,可以看见其中有一条

<!--flag KEY{Web-2-bugKssNNikls9100}-->

web2 这一句是什么意思,就是把答案告诉你了,你可以把KEY{Web-2-bugKssNNikls9100}提交到输入框就可以获得分数了。

web2

总结
提交完flag后要做什么呢?这时你就要看这一题考察的是什么?控制台,那么控制台又是什么呢?要是知道就做下一题,如果不知道那么我就谷歌(什么是网页控制台),也可以百度,然后找到一篇知乎的回答Chrome 按下 F12 之后出现的功能是做什么用的?
在记住后看这一知识点难不难,自己能不能掌握,如果怕忘记,那你就记笔记

3.以练促赛,以赛养练

选择一场已经存在Writeup的比赛或者参加一场最新的CTF比赛。
总结解题过程,最好能写一写博客之类的。

4.推荐平台

 极力推荐bugku,其他的后面慢慢来,先把bugku做好,然后在做攻防世界,你就会跨入进阶的门槛了。

5.工具收集

不要先去下载别人推荐的工具,反正你是不会去学的,一定要在解题的过程中寻找,那样你回加深印象,也能直接总结一套经验出来。

四、编程

很多人会纠结到底要不要深入编程。不要太深入,差不多就可以了,对照文档就可以写出程序就差不多了且能看得懂就好了,因为每个语言都是学不完的,一直在更新,如果过分专注于一个语言,安全知识就挺容易漏下的。或则是针对一些热门的编程进行深入,比如PHP、python、java之类的,其中PHP可以说是必学项目,如果可以的话,把这门语言学透,那么代码审计一点压力都没有。

上面都是个人想法,怎么选都要靠自己决定,要不要深入、深入哪一门都是问题,一定要考虑清楚再下手,切勿学了一半就改变方向,这是学习的大忌,因为你学其它的也会这样,除非是你发现这个不是很适合你的发展。

总结

最重要的是刷题,,不会就看别人的Writeup,不要怕做不出,刷题一开始是很无聊的,但这是学习的过程,如果不做就永远不会。

最后附上我整理好的CTF学习资料,需要的小伙伴可以关注我后台自动发送哦


 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/45786.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用PHP实现登录注册功能的完整指南

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;全栈领域新星创作者✌&#xff0c;2023年6月csdn上海赛道top4。多年电商行业从业经验&#xff0c;对系统架构&#xff0c;数据分析处理等大规模应用场景有丰富经验。 &#x1f3c6;本文已收录于PHP专栏&#xff1a;PHP…

如何高效进行客户管理?这几点很重要

管理客户是任何业务的重要组成部分。通过建立良好的关系&#xff0c;提供良好的客户服务并满足客户的需求&#xff0c;可以帮助吸引新客户并保留现有客户&#xff0c;这对于业务的长期成功非常重要。 因此&#xff0c;本篇文章将为您介绍如何做客户管理&#xff0c;客户管理的…

Jmeter接口测试工具的一些使用小技巧

如何使用英文界面的JMeter Jmeter启动时会自动判断操作系统的locale 并选择合适的语言启动&#xff0c;所以&#xff0c;我们启动jmeter后&#xff0c;其会出现一个倍感亲切的中文界面。但由于jmeter本身的汉化工作做得不好&#xff0c;你会看到有未被汉化的选项及元件的参数。…

华为认证HCIA-HCIP-HCIEdatacom题库解析+机构视频+实验

题库包含有2023年最新HCIA-datacom题库、HCIP-datacom题库&#xff0c;HCIE-datacom题库&#xff0c; 云计算HCIA&#xff0c;HCIP题库&#xff0c;云服务HCIA&#xff0c;HCIP题库&#xff0c;华为存储HCIP题库&#xff0c;华为安全HCIP题库 &#xff0c;学习笔记&#xff0c;…

卡尔曼滤波算法原理及示例

例程:物体做匀速运动每秒运动1m,观测器观测方差为1m

华为数通HCIP-ISIS原理与配置

IS-IS的基本概念 isis&#xff08;中间系统到中间路由协议&#xff09; 链路状态路由协议、IGP、无类路由协议&#xff1b; IS-IS是一种链路状态路由协议&#xff0c;IS-IS与OSPF在许多方面非常相似:运行IS-IS协议的直连设备之间通过发送Hello报文发现彼此&#xff0c;然后建…

《人工智能安全》课程总体结构

1 课程内容 人工智能安全观&#xff1a;人工智能安全问题、安全属性、技术体系等基本问题进行了归纳整理。人工智能安全的主要数据处理方法&#xff0c;即非平衡数据分类、噪声数据处理和小样本学习。人工智能技术赋能网络空间安全攻击与防御&#xff1a;三个典型实例及攻击图…

2-vi和vim的使用

vi和vim的区别 vi 是linux系统中内置的文本编辑器vim具有程序编辑能力 vi和vim常用的三种模式 正常模式 使用vim打开一个文件&#xff0c;就默认进入正常模式可以使用方向键【上下左右】来移动光标可以使用【删除字符/删除整行】来处理文件内容也可以使用【复制/粘贴】快捷键…

PyToch 深度学习 || 3. 卷积神经网络 | 3.1 深度学习中的卷积操作

深度学习中的卷积操作 文章目录 深度学习中的卷积操作1. 卷积2. 一维卷积2.1 使用nn.functional库中conv1d2.2 使用nn库中的Conv1d 3. 二维卷积3.1 nn.functional.conv2d3.2 nn.Conv2d 1. 卷积 加权求和是一种非常重要的运算&#xff0c;可以整合局部数字特征进而是提取局部信…

BI系统能给企业带来什么?看完本文就懂了

这几年大家都在转型数字化&#xff0c;而数字化运营需要依赖BI系统来进行数据分析和决策支持&#xff0c;从而提升企业效率和竞争力&#xff0c;因此在转型数字化的过程中&#xff0c;必然少不了BI系统。 BI系统是一种可以高效智能地收集和整合多业务系统数据&#xff1b;实现大…

L---泰拉瑞亚---2023河南萌新联赛第(三)场:郑州大学

链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 示例1 输入 1 10 3 5 输出 3 说明 只有一把回旋镖&#xff0c;你可以先打两次伤害为3的&#xff0c;再打一次倾尽全力的&#xff0c;造成的伤害为5。总伤害为33511&#xff0c;即可获得胜…

string类的模拟实现

文章目录 string类的模拟实现string基本框架的实现operator的实现string常用函数的实现 string类的模拟实现 前文对于string的常用函数做了讲解&#xff0c;由于string是一个面试官常考的点&#xff0c;总喜欢让模拟实现string类&#xff0c;下面来模拟实现一下string&#xf…

Alluxio技术分析

Alluxio技术分析 Alluxio: A Virtual Distributed File System Alluxio主要解决的基于磁盘的分布式存储层性能低下的问题&#xff0c;通过alluxio提供的分布式内存来加速数据分析。 Alluxio的这种通过内存加速数据的想法其实是有明确的使用场景的&#xff1a; Immutable da…

【WEB开发】Java获取高德POI(关键词搜索法)实现数据展示

前言 该篇文章是关键词搜索法获取高德poi&#xff0c;但鉴于无法突破200条记录的上限&#xff0c;所以采用了本方法进行区/县循环检索。开始之前我们首先需要明白一些常识 poi是兴趣点&#xff0c;它本身除了经纬度&#xff0c;还记录了一些信息&#xff0c;如名称、地址、联…

opencv-19 图像色彩空间转换函数cv2.cvtColor()

cv2.cvtColor() 函数是 OpenCV 中用于图像颜色空间转换的函数。它允许你将图像从一个色彩空间转换为另一个色彩空间。在 Python 中&#xff0c;你可以使用这个函数来实现不同色彩空间之间的转换。 函数的基本语法为&#xff1a; cv2.cvtColor(src, code[, dst[, dstCn]])参数…

消息队列(一)-- RabbitMQ入门(4)

RabbitMQ 其他知识点 幂等性 消息重复消费 消费者在消费MQ 中的消息时&#xff0c;MQ 已经把消息发送给消费者&#xff0c;消费者在给 MQ 返回 ack 时网络中断&#xff0c;故MQ 未收到确认消息&#xff0c;该消息会重新发给其他消费者&#xff0c;或网络重新连接后再次发给该消…

计算机科学cs/电子信息ei面试准备——数学基础/线性代数复习

1. 中值定理 中值定理是反映函数与导数之间联系的重要定理&#xff0c;也是微积分学的理论基础&#xff0c;在许多方面它都有重要的作用&#xff0c;在进行一些公式推导与定理证明中都有很多应用。中值定理是由众多定理共同构建的&#xff0c;其中拉格朗日中值定理是核心&…

登录和注册页面 - 验证码功能的实现

目录 1. 生成验证码 2. 将本地验证码发布成 URL 3. 后端返回验证码的 URL 给前端 4. 前端将用户输入的验证码传给后端 5. 后端验证验证码 1. 生成验证码 使用hutool 工具生成验证码. 1.1 添加 hutool 验证码依赖 <!-- 验证码 --> <dependency><groupId…

Android Studio Flamingo Logcat使用方式

旧版Android Studio突然打不开了&#xff0c;安装了新的Flamingo。习惯用Log.e看日志&#xff0c;突然发现logcat没有筛选下拉了。o(╥﹏╥)o 还是需要查看官方文档&#xff1a;https://developer.android.google.cn/studio/debug/logcat?hlzh-cn &#xff08;不知道为啥&…

jdk,jre和jvm三者的关系和区别

目录 一、三者的关系 二、JDK的概念 三、JRE的概念 四、JVM的概念 五、三者区别 一、三者的关系 从图中可以清楚地看到&#xff0c;他们之间的关系是JDK包含JRE, JRE又包含JVM。 因此&#xff0c;JDK包含JRE和JVM。 JDK JRE Java 开发工具包 [Java,Javac,Javadoc,Javap…