当前位置: 首页 > news >正文

CTF入门指南

何为CTF ?

CTF(Capture The Flag)夺旗比赛,在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。CTF起源于1996年DEFCON全球黑客大会,以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式。发展至今,已经成为全球范围网络安全圈流行的竞赛形式,2013年全球举办了超过五十场国际性CTF赛事。而DEFCON作为CTF赛制的发源地,DEFCON CTF也成为了目前全球最高技术水平和影响力的CTF竞赛,类似于CTF赛场中的“世界杯” 。

CTF赛事介绍

CTF是一种流行的信息安全竞赛形式,其英文名可直译为“夺得Flag”,也可意译为“夺旗赛”。其大致流程是,参赛团队之间通过进行攻防对抗、程序分析等形式,率先从主办方给出的比赛环境中得到一串具有一定格式的字符串或其他内容,并将其提交给主办方,从而夺得分数。为了方便称呼,我们把这样的内容称之为“Flag”。

CTF竞赛模式

CTF竞赛模式具体分为以下三类:

一、解题模式(Jeopardy)

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

二、攻防模式(Attack-Defense)

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

三、混合模式(Mix)

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

CTF竞赛内容

不管是国内外,目前主流的CTF比赛内容主要涉及以下多个方面:

  • Web 应用漏洞挖掘利用
  • Crypto 密码学
  • Pwn 程序的逻辑分析,漏洞利用windows、linux、小型机、固件设备等
  • Misc 杂项,隐写,数据还原,脑洞、社会工程、与信息安全相关的大数据等
  • Reverse 二进制程序逆向,逆向windows、linux、移动设备类等
  • Ppc 编程类

国内外著名赛事

国际知名CTF赛事

· DEFCON CTF:CTF赛事中的“世界杯”

· UCSB iCTF:来自UCSB的面向世界高校的CTF

· Plaid CTF:包揽多项赛事冠军的CMU的PPP团队举办的在线解题赛

· Boston Key Party:近年来崛起的在线解题赛

· Codegate CTF:韩国首尔“大奖赛”,冠军奖金3000万韩元

· Secuinside CTF:韩国首尔“大奖赛”,冠军奖金3000万韩元

· XXC3 CTF:欧洲历史最悠久CCC黑客大会举办的CTF

· SIGINT CTF:德国CCCAC协会另一场解题模式竞赛

· Hack.lu CTF:卢森堡黑客会议同期举办的CTF

· EBCTF:荷兰老牌强队Eindbazen组织的在线解题赛

· Ghost in the Shellcode:由Marauders和Men in Black Hats共同组织的在线解题赛

· RwthCTF:由德国0ldEur0pe组织的在线攻防赛

· RuCTF:由俄罗斯Hackerdom组织,解题模式资格赛面向全球参赛,解题攻防混合模式的决赛面向俄罗斯队伍的国家级竞赛

· RuCTFe:由俄罗斯Hackerdom组织面向全球参赛队伍的在线攻防赛

· PHD CTF:俄罗斯Positive Hacking Day会议同期举办的CTF

国际重要CTF赛事分布图:红色为解题模式选拔赛+攻防模式现场决赛,黑色为混合模式在线赛,紫色为解题模式CTF赛,橘色为在攻防模式在线赛。

国内知名CTF赛事

· XCTF全国联赛

中国网络空间安全协会竞评演练工作组主办、南京赛宁承办的全国性网络安全赛事平台,2014-2015赛季五站选拔赛分别由清华、上交、浙大、杭电和成信技术团队组织(包括杭电HCTF、成信SCTF、清华BCTF、上交0CTF和浙大ACTF),XCTF联赛总决赛由蓝莲花战队组织。XCTF联赛是国内最权威、最高技术水平与最大影响力的网络安全CTF赛事平台。

· AliCTF

由阿里巴巴公司组织,面向在校学生的CTF竞赛,冠军奖金10万元加BlackHat全程费用。

· KCTF

看雪CTF(简称KCTF)是圈内知名度最高的技术竞技,从原CrackMe攻防大赛中发展而来,采取线上PK的方式,规则设置严格周全,题目涵盖Windows、Android、iOS、Pwn、智能设备、Web等众多领域。
看雪CTF比赛历史悠久、影响广泛。自2007年以来,看雪已经举办十多个比赛,与包括金山、360、腾讯、阿里等在内的各大公司共同合作举办赛事。比赛吸引了国内一大批安全人士的广泛关注,历年来CTF中人才辈出,汇聚了来自国内众多安全人才,高手对决,精彩异常,成为安全圈的一次比赛盛宴,突出了看雪论坛复合型人才多的优势,成为企业挑选人才的重要途径,在社会安全事业发展中产生了巨大的影响力。

· XDCTF

2015年之前由西安电子科技大学信息安全协会与西安电子科技大学组织的CTF竞赛,其特点是偏向于渗透实战经验。2016年之后由西安电子科技大学组织举办。

· HCTF

由杭州电子科技大学信息安全协会承办组织的CTF

杭州电子科技大学信息安全协会由杭州电子科技大学通信工程学院组织建立,协会已有七年历史,曾经出征DEFCON,BCTF等大型比赛并取得优异成绩,同时协会还有大量有影响力的软件作品。协会内部成员由热爱黑客技术和计算机技术的一些在校大学生组成,有多个研究方向,主要有渗透,逆向,内核,web等多个研究方向。至今已经成功举办6次CTF比赛。

· ISCC

由北理工组织的传统网络安全竞赛,最近两年逐渐转向CTF赛制。

· LCTF

由L-Team战队组织的CTF竞赛。

· TCTF

TCTF由中国网络空间安全协会竞评演练工作委员会指导、腾讯安全发起、腾讯安全联合实验室主办,0ops战队和北京邮电大学协办的CTF竞赛。

· Real World CTF

Real World CTF 是由长亭科技主办的国际级 CTF 大赛,全球首创 CTF 夺旗赛和 Pwn 赛结合的全新赛制,赛题全部基于 现实世界软件的修改或二次开发,首届即吸引了 5 大洲,15 个国家地 区顶尖战队参赛。

· 百度杯CTF夺旗大战

由百度安全应急响应中心和i春秋联合举办的CTF比赛,国内现今为止首次历时最长(半年)、频次最高的CTF大赛。赛题丰富且突破了技术和网络的限制。

· 全国大学生信息安全竞赛创新实践能力赛线上赛

由教育部高等学校信息安全专业教学指导委员会主办,西安电子科技大学、永信至诚、国卫信安等承办;百度安全中心、阿里安全应急响应中心、腾讯安全平台方舟计划、360企业安全集团赞助支持的CTF竞赛,覆盖面广,质量级别最高,被参赛选手称作CTF的国赛。

入门基础

  • 编程语言基础(汇编、C/C++、脚本语言)
  • 数学基础(主流程序算法、密码学知识)
  • 脑洞大开(天马行空的想象、逻辑推理能力)
  • 体力耐力毅力(吃嘛嘛香、身体倍棒、通宵熬夜、拿得起放得下)

如何入门

  • 恶补基础知识
  • 尝试从脑洞开始:如黑客game
  • 从基础题出发:一般都是100、200,最高分在500、600,先把100分的学好,从实践初、中级的ctf学起,比较简单,只涉及1-2个知识点
  • 学信息安全专业知识
  • 锻炼体力耐力和毅力,周六日都有比赛

如何学ctf

  1. 分析赛题情况(属于哪一类涉及哪些知识点等)
  2. 分析自身能力,自己最适合哪个方向?(方向很重要,建议兴趣所致,有时也需为团队牺牲!!!)
  3. 选择更适合的入手(从低到高、由易入难)
  4. 研究历年经典的wp(writeup)

分析赛题

PWN、Reverse:偏重对汇编、逆向及底层核心的理解

Crypto:偏重对数学、算法的学习,密码学要深入学习

Web:偏重对技巧沉淀、快速搜索能力的挑战、发散性思维,对底层、代码原理只需要了解,相关漏洞知识的积累

Misc:偏重则更复杂,所有与计算机安全挑战有关的都在其中,隐写、图片数据分析还原、流量分析、大数据、游戏逆向分析等等

常规操作

A方向:PWN+Reverse+Crypto 随机搭配

B方向:Web+Misc组合

Misc所有人都可以做

入门知识

团队要学的内容:linux基础、计算机组成原理、操作系统原理、网络协议分析

A方向:IDA工具使用(fs插件)、逆向工程、密码学、缓冲区溢出等

B方向:Web安全、网络安全、内网渗透、数据库安全、top10的安全漏洞等

推荐书籍

A方向:

RE for Beginners
IDA Pro权威指南
揭秘家庭路由器0day漏洞挖掘技术
自己定操作系统
黑客攻防技术宝典:系统实战篇 有各种系统的逆向讲解

B方向:

Web应用安全权威指南 最推荐小白,宏观web安全
Web前端黑客技术揭秘
黑客秘籍—渗透测试实用指南
黑客攻防技术宝典 web实战篇 web安全的所有核心基础点,有挑战性,最常规,最全,学好会直线上升
代码审计:企业级web代码安全架构

入门----从基础题目出发(推荐资源)

http://ctf.idf.cn 首推 idf实验室:题目非常基础,单个知识点
https://www.ichunqiu.com i春秋,有线下决赛题目复现
http://oj.xctf.org.cn/xctf 题库网站,历年题,练习场,比较难
[WeChall] Challenges !!!!!!非常入门的国外ctf题库,很多国内都是从这里刷题成长起来的
http://canyouhack.it/ 国外,入门,有移动安全
https://microcorruption.com/login A方向 密码,逆向酷炫游戏代
http://smashthestack.org A方向,简洁,国外,wargames,过关
http://overthewire.ofg/wargames/ !!!!推荐A方向 国内资料多,老牌wargame
https://exploit-exercises.com A方向 老牌wargame,国内资料多
http://pawnable.kr/play.php pwn类游乐场,不到100题
http://ctf.moonsoscom/pentest/index.php B方向 米安的Web漏洞靶场,基础,核心知识点
prompt(1) to win - 0x0 B方向 国外的xss测试
RedTiger's Hackit B方向 国外sql注入挑战网站,10关,循序渐近地练习

github工具

GitHub - truongkma/ctf-tools: tổng hợp tool ctf
https://github.com/Plkachu/v0lt
GitHub - zardus/ctf-tools: Some setup scripts for security research tools.
GitHub - TUCTF/Tools: Tools used for various CTFs

写在最后

入门-->小白-->大白-->高手-->大蛇

16字真言:

唯学勤练,唯练督学
以练促赛,以赛养练

选择一场已经存在writeup的比赛

总结解题思路与过程,分析出题人想法

参加一场最新的ctf比赛

CTFtime.org / All about CTF (Capture The Flag) 国际比赛,很多基础的题

http://www.xctf.org.cn/ 国内比赛,比较难,成长较快

组建团队--强力成员画像

1.脑洞思维:灵活性,不钻墙脚
2.专注精神:遇到问题不言弃,盘它
3.耐力毅力:连续研究技术,不出成果誓不休
4.团队精神:团结、责任、凝聚、分享

符合3条即强力成员,符合4条恭喜强力队长就是你!
2023网络安全CTF全套教程(CTF夺旗赛、核心真题解析、CTF综合测试训练、项目实战解析)icon-default.png?t=N4N7https://mp.weixin.qq.com/s/KQx_eIwdjCj3QdErxKb7ZQ

相关文章:

CTF入门指南

何为CTF ? CTF(Capture The Flag)夺旗比赛,在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。CTF起源于1996年DEFCON全球黑客大会,以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式。…...

C:入门级积累(4)

(int *)malloc(10 * sizeof(int))memory allocate动态分配内存,malloc的出现时为了弥补静态内存分配的缺点,传统数组的长度一旦定义之后,就不能更改,比如说,如果我有一个业务在这之前给分配的大小为100,但是&#xff0…...

基于DBSCAN密度聚类的风电-负荷场景削减方法

​目录 ​ 1 主要内容 基于密度聚类的数据预处理: 场景提取: 算法流程: 2 部分程序 3 程序结果 4 下载链接 1 主要内容 该程序复现文章《氢能支撑的风-燃气耦合低碳微网容量优化配置研究》第三章内容,实现的是基于DBSCAN…...

服务(第二十七篇)squid-传统、穿透、反向代理

squid代理服务器: 主要提供缓存加速、应用层过滤控制的功能。 代理的工作机制: 1、代替客户机向网站请求数据,从而可以隐藏用户的真实IP地址。 2、将获得的网页数据(静态 Web 元素)保存到缓存中并发送给客户机&#x…...

golang yaml 解析问题

golang 中解析 yaml 格式内容可以使用 yaml.v3 库来解决。下载 go 依赖 go get -u gopkg.in/yaml.v31. 示例 yaml 数据 config_mail_template:description: 验证码one: Verification Codeother: Verification Codeconfig_mail_template_reset_code:description: 重置密码one:…...

setContentHuggingPriority和setContentCompressionResistancePriority的使用

需求&#xff1a; 两个label并排显示&#xff0c;文字内容由服务器返回&#xff0c;label宽度以文字内容自适应&#xff0c;label之间间距大于等于10. 需要考虑以下情况&#xff1a; 当两个label的宽度和 < 屏幕宽度时&#xff0c;各自设置约束&#xff0c;无需处理&#…...

java springboot yml文件配置 多环境yml

如果是properties改用yml&#xff0c;直接改后缀&#xff0c;原文件中的配置语法改用yml的语法即可&#xff0c;系统会自动扫描application.properties和application.yml文件&#xff08;注意&#xff1a;改了之后需要maven 命令 clean一下&#xff0c;清个缓存&#xff09;。 …...

DMBOK知识梳理for CDGA/CDGP——第一章数据管理(附常考知识点)

第一章 数据管理 第一章在 CDGA|CDGP考试中分值占比均不是很高&#xff0c;主要侧重点是考概念性的知识&#xff0c;理解数据管理的目标原则、还有与其他概念的区别点&#xff0c;同时掌握几个关键核心的图&#xff08;车轮图、六边形图、语境关系图&#xff09;。总体来说难度…...

065:cesium设置带有箭头的线材质(material-9)

第065个 点击查看专栏目录 本示例的目的是介绍如何在vue+cesium中设置带有箭头的线材质,请参考源代码,了解PolylineArrowMaterialProperty的应用。 直接复制下面的 vue+cesium源代码,操作2分钟即可运行实现效果. 文章目录 示例效果配置方式示例源代码(共82行)相关API参考…...

Java常用API

1 常用API API(:Application Programming Interface ):应用程序编程接口1.1 Math类 Math中没有构造方法,类的成员都是静态的(static修饰),通过类名就可以直接调用常用方法方法名说明public static int abs(int a)获取参数a的绝对值public static double ceil(double a) …...

【C++ 学习 ⑥】- C++ 动态内存管理详解

目录 一、new 表达式和 delete 表达式的工作机理 二、operator new 和 operator delete 函数 2.1 - 标准库定义 2.2 - 重载 三、定位 new 表达式 四、常见面试题 4.1 - malloc/free 和 new/delete 的区别 4.2 - 内存泄漏 在 C 中&#xff0c;new 和 delete 既是关键字&…...

【5.21】六、自动化测试—常见技术

目录 6.2 自动化测试常见技术 1. 录制与回放测试 2. 脚本测试 3. 数据驱动测试 6.2 自动化测试常见技术 自动化测试技术有很多种&#xff0c;这里介绍3种常见的技术&#xff1a; 1. 录制与回放测试 录制是指使用自动化测试工具对桌面应用程序或者是Web页面的某一项功能进…...

JavaScript中的事件循环机制,包括事件循环的原理、宏任务和微任务、事件队列和调用栈、以及如何优化事件循环

JavaScript中的事件循环机制是JavaScript运行引擎的核心之一&#xff0c;它决定了代码的执行方式和效率。本文将从几个方面介绍JavaScript中的事件循环机制&#xff0c;包括事件循环的原理、宏任务和微任务、事件队列和调用栈、以及如何优化事件循环。 一、事件循环的原理 事…...

【华为OD机试c++】解压报文【2023 B卷 |200分】

题目描述 为了提升数据传输的效率&#xff0c;会对传输的报文进行压缩处理。 输入一个压缩后的报文&#xff0c;请返回它解压后的原始报文。 压缩规则&#xff1a;n[str]&#xff0c;表示方括号内部的 str 正好重复 n 次。 注意 n 为正整数&#xff08;0 < n < 100&a…...

JS中Array的forEach、map、filter方法区别?

一&#xff1a;基本用法 1、forEach()函数用于对数组中的每个元素执行给定的函数&#xff0c;而它不返回任何值&#xff0c;它只是对每个元素调用传入的函数。这个函数可以接受三个参数&#xff1a;当前元素的值、当前元素的索引和整个数组。 const arr [1, 2, 3]; arr.forE…...

Java的Arrays类的sort()方法(41)

目录 sort&#xff08;&#xff09;方法 1.sort&#xff08;&#xff09;方法的格式 2.使用sort&#xff08;&#xff09;方法时要导入的类 3.作用 4.作用的对象 5.注意 6.代码及结果 &#xff08;1&#xff09;代码 &#xff08;2&#xff09;结果 sort&#xff08;&…...

Redis安装及其配置文件修改

一、redis 安装 点击即可下载 https://download.redis.io/releases/ 将下载后的包通过xftp上传到服务器 解压&#xff0c;我这边是解压到/usr/local目录下 -- 创建路径 mkdir /usr/local/redis -- 解压 tar -zxvf redis-4.0.0.tar.gz -C /usr/local/redis 为防止编译失败&am…...

VSOMEIP3抓包数据

环境 $ cat /etc/os-release NAME"Ubuntu" VERSION"20.04.6 LTS (Focal Fossa)" IDubuntu ID_LIKEdebian PRETTY_NAME"Ubuntu 20.04.6 LTS" VERSION_ID"20.04" HOME_URL"https://www.ubuntu.com/" SUPPORT_URL"https:/…...

基于PyQt5的图形化界面开发——Windows内存资源监视助手[附带编译exe教程]

基于PyQt5的图形化界面开发——Windows内存资源监视助手[附带编译exe教程] 0. 前言1. 资源信息获取函数——monitor.py2. UI界面——listen.py3. main.py4. 运行效果5. 编译 exe 程序6. 其他PyQt文章 0. 前言 利用 PyQt5 开发一个 windows 的资源监视助手&#xff0c;在使用虚…...

Linus Torvalds发布了第一个Linux内核6.4候选版本

导读自Linux内核6.3发布和下一个内核系列Linux 6.4的合并窗口开放以来&#xff0c;已经过去了一段时间&#xff0c;近日&#xff0c;Linus Torvalds发布了第一个RC&#xff08;候选发布版&#xff09;的里程碑&#xff0c;供公众测试。 为期两周的Linux内核6.4合并窗口现已关闭…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来

一、破局&#xff1a;PCB行业的时代之问 在数字经济蓬勃发展的浪潮中&#xff0c;PCB&#xff08;印制电路板&#xff09;作为 “电子产品之母”&#xff0c;其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透&#xff0c;PCB行业面临着前所未有的挑战与机遇。产品迭代…...

从WWDC看苹果产品发展的规律

WWDC 是苹果公司一年一度面向全球开发者的盛会&#xff0c;其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具&#xff0c;对过去十年 WWDC 主题演讲内容进行了系统化分析&#xff0c;形成了这份…...

Java 8 Stream API 入门到实践详解

一、告别 for 循环&#xff01; 传统痛点&#xff1a; Java 8 之前&#xff0c;集合操作离不开冗长的 for 循环和匿名类。例如&#xff0c;过滤列表中的偶数&#xff1a; List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建

制造业采购供应链管理是企业运营的核心环节&#xff0c;供应链协同管理在供应链上下游企业之间建立紧密的合作关系&#xff0c;通过信息共享、资源整合、业务协同等方式&#xff0c;实现供应链的全面管理和优化&#xff0c;提高供应链的效率和透明度&#xff0c;降低供应链的成…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)

本文把滑坡位移序列拆开、筛优质因子&#xff0c;再用 CNN-BiLSTM-Attention 来动态预测每个子序列&#xff0c;最后重构出总位移&#xff0c;预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵&#xff08;S…...

GC1808高性能24位立体声音频ADC芯片解析

1. 芯片概述 GC1808是一款24位立体声音频模数转换器&#xff08;ADC&#xff09;&#xff0c;支持8kHz~96kHz采样率&#xff0c;集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器&#xff0c;适用于高保真音频采集场景。 2. 核心特性 高精度&#xff1a;24位分辨率&#xff0c…...

云原生玩法三问:构建自定义开发环境

云原生玩法三问&#xff1a;构建自定义开发环境 引言 临时运维一个古董项目&#xff0c;无文档&#xff0c;无环境&#xff0c;无交接人&#xff0c;俗称三无。 运行设备的环境老&#xff0c;本地环境版本高&#xff0c;ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题

分区配置 (ptab.json) img 属性介绍&#xff1a; img 属性指定分区存放的 image 名称&#xff0c;指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件&#xff0c;则以 proj_name:binary_name 格式指定文件名&#xff0c; proj_name 为工程 名&…...

在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案

这个问题我看其他博主也写了&#xff0c;要么要会员、要么写的乱七八糟。这里我整理一下&#xff0c;把问题说清楚并且给出代码&#xff0c;拿去用就行&#xff0c;照着葫芦画瓢。 问题 在继承QWebEngineView后&#xff0c;重写mousePressEvent或event函数无法捕获鼠标按下事…...

前端中slice和splic的区别

1. slice slice 用于从数组中提取一部分元素&#xff0c;返回一个新的数组。 特点&#xff1a; 不修改原数组&#xff1a;slice 不会改变原数组&#xff0c;而是返回一个新的数组。提取数组的部分&#xff1a;slice 会根据指定的开始索引和结束索引提取数组的一部分。不包含…...