从零开始学习CTF,看完不信你学不会!

news2024/11/25 0:55:42

一、CTF简介

简介

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

竞赛模式

  • 解题模式:
    在解题模式CTF赛制中,参赛队伍可以通过互联网或者现场网络参与,这种模式的CTF竞赛ACM编程竞赛信息学奥赛比较类似,以解决网络安全技术挑战题目的分值时间来排名,通常用于在线选拔赛。题目主要包含逆向漏洞挖掘与利用Web渗透密码、取、隐安全编程等类别。
  • 攻防模式:
    在攻防模式CTF赛制中,参赛队伍在网络空间互相进行攻击防守,挖掘网络服务漏洞并攻击对手服务得分,修补自身服务漏洞进行防御来避免丢分。攻防模式CTF赛制可以实时通过得分反映出比赛情况,最终也以得分直接分出胜负,是一种竞争激烈,具有很强观赏性和高度透明性的网络安全赛制。在这种赛制中,不仅仅是比参赛队员的智力技术,也比体力(因为比赛一般都会持续48小时及以上),同时也比团队之间的分工配合与合作。
  • 混合模式:
    结合了解题模式与攻防模式CTF赛制,比如参赛队伍通过解题可以获取一些初始分数,然后通过攻防对抗进行得分增减的零和游戏,最终以得分高低分出胜负。采用混合模式CTF赛制的典型代表如iCTF国际CTF竞赛。

总结

一般大型比赛大都是i春秋承办的,以小组的形式比赛,分预选赛和总决赛。

  • 预选赛
    都是线上比赛,比赛形式几乎都是解题模式。进入官方提供的网站,登录账号密码后会到一个页面,题目按类别分类(后续会讲有什么类别),点击后提供题目链接题目信息题目提示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.PWN(二进制安全)

  • PWN在黑客俚语中代表着攻破,取得权限,在CTF比赛中它代表着溢出类的题目,其中常见类型溢出漏洞有栈溢出堆溢出。主要考察参数选手对漏洞的利用能力
  • 所需知识点:C,OD+IDA,数据结构,操作系统

6.Mobile(移动安全)

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

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 之后出现的功能是做什么用的?
在记住后看这一知识点难不难,自己能不能掌握,如果怕忘记,那你就记笔记,可以用印象笔记有道云笔记,推荐使用印象笔记,因为它有多级分层,也没必要买会员,它送的那点容量只要不放视频或则图片不要放太多,一个月是用不到30m的。

再来一题了解一下

例题2:bugku中的计算器

打开题目可以看见是个加法,18+91=109,可是我却只能输入一个1,这是为什么呢?
在这里插入图片描述
打开控制台看了一下,发现一个很特殊属性maxlength,那么我就谷歌一下maxlength是什么东西。

查询结果发现,maxlength是一个input元素中的用来限制字符数的,那我们就尅改一下,把他改成3、4之类的数值,只要能容纳我的答案就行了。输入后就可以获得flag了。

总结
这一题考察的是HTMLinput元素的maxlength属性,这时你就可以去把HTML学习一下了,可以试着怎么写网站,哪怕是最普通的也可以,学完以后做到关于HTML相关知识点的时候你就会很快找到哪里有问题。

3.以练促赛,以赛养练

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

4.推荐平台

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

5.工具收集

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


四、编程

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

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


总结

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

如果你一点基础都没有,又想学习这方面的内容,可以看看我自用的资料,里面包含了CTF夺旗赛的内容。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这份完整版的网络安全(客)全套学习资料已经上传至CSDN官方,朋友们如果需要可以给我留言,如果等不及我回复的,也可以点击链接CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享自取哦,也可以扫码获取。

在这里插入图片描述

总之,如果是想要深入了解和学习这么技术,坚持和努力缺一不可,但是只是想要参赛玩玩感受一下氛围也算是丰富一下人生经验嘛,总之不亏,我在这里就预祝所有看到了这篇文章的读者都能旗开得胜!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux——文件系统

✅<1>主页&#xff1a;&#xff1a;我的代码爱吃辣 &#x1f4c3;<2>知识讲解&#xff1a;Linux——文件系统 ☂️<3>开发环境&#xff1a;Centos7 &#x1f4ac;<4>前言&#xff1a;上期我们了解了文件在内存中得组织方式&#xff0c;那么文件在磁盘中…

ElasticSerach+MongoDB:实现文章检索历史功能

实现目标&#xff1a; 展示用户的搜索记录10条&#xff0c;按照搜索关键词的时间倒序可以删除搜索记录保存历史记录&#xff0c;保存10条&#xff0c;多余的则删除最久的历史记录 数据库的选择&#xff1a; 用户的搜索记录&#xff0c;需要给每一个用户都保存一份&#xff0c;数…

第3讲:vue路由安装配置,带参路由,子路由配置及应用

路由的安装与基本使用 vue-router是Vue官方的路由插件,它和Vue是深度集成,适用于构建单页面应用 vue-router的安装 //vue2路由配置npm install vue-router@3.0.2 或 cnpm install vue-router@3.0.2在具体应用的开发中我们一般会在src目录下新建一个名为router的目录,并在r…

加速乐源码(golang版本)

一、分析 分析过程网上有很多,这里只说个大概,主要是提供golang源码 请求网站,发现前两次请求都会返回521,第三次请求成功,说明前两次请求肯定是干了什么事情;使用接口请求工具模拟请求分析该过程 使用postman工具请求 a. 第一次请求会在响应头返回jsluid,返回内容中拼接…

滚动轴承 调心球轴承 外形尺寸

声明 本文是学习GB-T 281-2013 滚动轴承 调心球轴承 外形尺寸. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了符合 GB/T 273.3—1999 的调心球轴承及带紧定套的调心球轴承(以下简称轴承)的 外形尺寸。 本标准适用于调心球轴承…

【数字IC/FPGA】基于握手的数据广播

简介 本文介绍了一种基于握手协议的数据广播方式。事实上,该场景可以简化为模块的一对多握手,并且下游的各个模块可以独立的完成握手(与之相对的是下游模块一起完成握手,相比之下,下游各个模块可以独立完成握手显然更加普适、灵活)。 下图展示了模块一对多握手的示意图:…

阿里云服务器经济型e实例详细介绍_e系列性能价格表

阿里云服务器ECS推出经济型e系列&#xff0c;经济型e实例是阿里云面向个人开发者、学生、小微企业&#xff0c;在中小型网站建设、开发测试、轻量级应用等场景推出的全新入门级云服务器&#xff0c;CPU采用Intel Xeon Platinum架构处理器&#xff0c;支持1:1、1:2、1:4多种处理…

GLTF编辑器如何合并相同材质的Mesh

1、什么是模型材质合批 模型材质合批是一种技术手段&#xff0c;主要用于优化渲染性能和提高图形应用程序的帧率。它通过将多个模型的材质进行合并&#xff0c;从而减少渲染时的绘制调用次数。 在计算机图形学中&#xff0c;每个模型都有一个或多个材质&#xff0c;这些材质定义…

【教程】视频汇聚/视频监控管理平台EasyCVR录像存储功能如何优化?具体步骤是什么?

视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同&#xff0c;支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。视频监控系统EasyCVR拓展性强&#xff0c;视频能力丰富&#xff0c;具体可实现视频监控直播、视频轮播、视频录像、云存储、…

使用 PyTorch 的计算机视觉简介 (5/6)

一、说明 本文主要介绍CNN中在pytorch的实现&#xff0c;其中VGG16网络&#xff0c;数据集来源&#xff0c;以及训练过程&#xff0c;模型生成和存储&#xff0c;模型调入等。 二、预训练模型和迁移学习 训练 CNN 可能需要大量时间&#xff0c;并且该任务需要大量数据。但是&am…

【每日一题】441. 排列硬币

441. 排列硬币 - 力扣&#xff08;LeetCode&#xff09; 你总共有 n 枚硬币&#xff0c;并计划将它们按阶梯状排列。对于一个由 k 行组成的阶梯&#xff0c;其第 i 行必须正好有 i 枚硬币。阶梯的最后一行 可能 是不完整的。 给你一个数字 n &#xff0c;计算并返回可形成 完整…

位段 联合体 枚举

Hello好久不见&#xff0c;今天分享的是接上次结构体没有分享完的内容&#xff0c;这次我们讲讲位段 枚举和联合体的概念以及他们的用法。 2.1 什么是位段 位段的声明和结构是类似的&#xff0c;有两个不同&#xff1a; 1.位段的成员必须是 int、unsigned int 或signed int 。 …

Unity下tga和png格式图片打包成AB包大小和加载速度测试

测试素材 测试素材&#xff0c;一张tga格式&#xff0c;一张png格式&#xff0c;他们的图像尺寸一样都是8K图。 两张图在AssetBundles里显示 Tga格式的图明显大很多&#xff0c;我们打包成ab包看看。 在PC 打包后看&#xff0c;明显大小一样&#xff0c;我们进行ab包加载&am…

通俗易懂讲解拥塞控制

文章目录 前言一、拥塞控制是什么&#xff1f;二、什么是拥塞窗口&#xff1f;和发送窗口有什么关系呢&#xff1f;三、慢启动四、阻塞避免算法五、拥塞发生状态时的算法以及快速重传以及快速恢复总结 前言 TCP的拥塞控制&#xff0c;以前觉得老复杂了&#xff0c;今天重温了一…

HTML - input type=file 允许用户选择多个文件

效果 示例 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title></head><body><!-- When the multiple Boolean attribute is specified, the file input allows the user to select more than o…

【漏洞复现】企望制造 ERP命令执行

漏洞描述 由于企望制造 ERP comboxstore.action接口权限设置不当&#xff0c;默认的配置可执行任意SQL语句&#xff0c;利用xp_cmdshell函数可远程执行命令&#xff0c;未经认证的攻击者可通过该漏洞获取服务器权限。 免责声明 技术文章仅供参考&#xff0c;任何个人和组织…

Python经典练习题(二)

文章目录 &#x1f340;题目一&#x1f340;第二题&#x1f340;第三题&#x1f340;第四题&#x1f340;第五题 &#x1f340;题目一 古典问题&#xff1a;有一对兔子&#xff0c;从出生后第3个月起每个月都生一对兔子&#xff0c;小兔子长到第三个月后每个月又生一对兔子&am…

【操作系统笔记二】链接阶段ELF文件

链接阶段&#xff1a;符号解析 链接阶段主要包含&#xff1a; 符号解析重定位 一般情况下&#xff0c;每个 C 文件可以看成一个程序模块&#xff0c;比如下边的main.c就是一个程序模块 #include <stdio.h>extern int shared; int sum(int *a, int n); int array[2] …

【C语言】指针的进阶(四)—— 企业笔试题解析

笔试题1&#xff1a; int main() {int a[5] { 1, 2, 3, 4, 5 };int* ptr (int*)(&a 1);printf("%d,%d", *(a 1), *(ptr - 1));return 0; } 【答案】在x86环境下运行 【解析】 &a是取出整个数组的地址&#xff0c;&a就表示整个数组&#xff0c;因此…

oracle11g升级12c

目录 背景&#xff1a;oracle11.2.0.4升级至12.2.0.1版本 当前数据库版本 1&#xff09;上传12g安装包&#xff0c;解压开始安装 2&#xff09;不勾选 3&#xff09;升级数据库 4&#xff09;下一步 5&#xff09;修改路径11.2.0换成12.2.0 6&#xff09;下一步 7&…