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

网络安全CTF竞赛模式、题目类别、所用工具小结

前言

在开启CTF竞赛学习之路前,我们要熟悉CTF的三大竞赛模式,了解简单的CTF竞赛中涉及的题目类别,最后就是我们用哪些工具拿到Flag。本文主要是起开宗明义作用,为日后的CTF做题提供基本的理论指导。

正文:

1. CTF竞赛模式

解题模式1
一般通过线上网络参赛,以解决网络安全技术挑战题目的分值和时间来排名,通常用于在线选拔赛。题目主要包含逆向、漏洞挖掘与利用、Web 渗透、密码、取证、隐写、安全编程等类别。
攻防模式1
参赛队伍在网络空间互相进行攻击和防守,挖掘网络服务漏洞并攻击对手服务来得分,修补自身服务漏洞进行防御来避免丢分。注重团队合作及智力技术的比拼。
混合模式1
结合了解题模式与攻防模式的CTF赛制。参赛队伍通过解题可以获取一些初始分数,然后通过攻防对抗进行得分增减,最终以得分高低分出胜负。

我目前接触的最多的就是解题模式。

2. CTF竞赛题目类别与所用工具2

在常规的CTF解题模式下,CTF练习平台(或者简单的比赛)的比赛界面如下图所示。
在这里插入图片描述
当我们动手去做题的时候,我们先要仔细读题干、再选择相应的题目去做。

常见的题干有以下几大类:
2.1 Reverse
Reverse类题型要求参赛选手有较强的反汇编、反编译功底。题目主要涉及软件逆向破解技术,参赛者会得到一个程序,需在没有完整原始码的情况下分析程序,找到隐藏的信息,或者改变程序的运行流程。
逆向解题的基本流程:
(1)程序预处理,去混淆和过反调试;
(2)代码逆向,找到验证函数;
(3)验证函数数逆向,找到验证算法;
(4)破解验证算法,拿到flag;

参考书籍:《逆向工程核心原理》、《加密与解密》、《使用OllyDbg从零开始Cracking》、《IDA Pro权威指南》、《Intel汇编语言程序设计》等等。
最终目标:熟悉汇编语言、C语言、操作系统原理及其核心编程、程序加载、反汇编与调试等等。理解目标代码,能看懂目标程序编写语言。

2.2 Pwn
Pwn类题型要求参赛选手有较强漏洞利用能力。在CTF比赛中它代表着溢出类的题目,其中常见类型溢出漏洞有整数溢出、栈溢出、堆溢出等。
Pwn解题的基本流程:
(1)分析二进制文件,找到其中漏洞;
(2)通过异常的输入,利用漏洞,执行目标代码,获取flag;

参考工具:IDA Pro、pwntools、gdb、ROPgadget等。
最终目标:掌握汇编语言、逆向基础、软件技术防护 、ROP面向返回的编程技巧、各类漏洞。

2.3 Crypto
Crypto类题型考察参赛选手密码学相关知识点。包括古典加密技术、现代加密技术甚至出题者自创加密技术,以及一些常见的编码解码,主要考察参赛选手密码学相关知识点。通常也会和其他题目相结合。
Crypto解题的基本流程:
(1)分析编码或加密所使用的技术;
(2)使用工具对密文解密;

参考工具:CryptoSearcher、Base64kit、HashCalc、RSATool2、John the Ripper等。
最终目标:熟悉各类编码方式(hex、base64、url、ascii、摩斯电码等)和加密方式(MD5、SHA、AES、DES、RSA、栅栏加密等)。

2.4 Misc
Misc类题型指的是安全杂项,主要考察参赛选手的各种基础综合知识。题目涉及隐写术、流量分析、电子取证、人肉搜索、数据分析、大数据统计等,覆盖面比较广,主要考察参赛选手的各种基础综合知识。
Misc没有套路化的解题流程,具体问题具体分析。
参考工具:file、010Editor、Binwalk、foremost、dd、Stegsolve、Audacity、steghide、Wireshark等。
最终目标:熟悉文件类型结构分析、隐写相关、压缩文件结构、日志分析、流量分析、信息收集等。

2.5 Web
Web类题型是CTF的主要题型,主要考察参赛选手是否掌握常见的Web漏洞,如XSS、文件包含、命令执行、上传漏洞、SQL注入等。也有一些简单的关于网络基础知识的考查,如请求返回包、TCP/IP、数据包内容和构造。题目环境比较接近真实环境。
Web没有套路化的解题流程,具体问题具体分析。
参考工具:Brup Suite、fiddler、中国菜刀、sqlmap、开发者工具等。
最终目标:掌握Web漏洞原理与测试技巧、JavaScript、SQL、Linux命令等等。

2.6 Mobile
主要分为安卓和IOS两个平台,以安卓逆向为主,破解apk并提交正确答案。
Mobile解题的基本流程:
(1)根据题目的apk文件,提出class.dex文件得到jar文件;
(2)获取jar文件中源码进行代码分析

参考工具:dex2jar、Androidkiller、jd-gui等。
最终目标:掌握安卓逆向分析、安卓语言等。


http://www.kler.cn/a/391272.html

相关文章:

  • docker-compose搭建sfpt服务器
  • C++的内存四区
  • 118.【C语言】数据结构之排序(堆排序和冒泡排序)
  • OpenCV相机标定与3D重建(36)计算两幅图像之间基本矩阵(Fundamental Matrix)的函数findFundamentalMat()的使用
  • 深入探索仓颉编程语言:函数与结构类型的终极指南
  • 【解决报错】AttributeError: ‘NoneType‘ object has no attribute ‘group‘
  • 比 PyTorch 更快的嵌入Python库:FastEmbed
  • django入门【05】模型介绍——字段选项(二)
  • 算法——移除元素(leetcode27)
  • el-input 正则表达式校验输入框不能输入汉字
  • 工位管理现代化:Spring Boot企业级框架
  • WPF 应用程序中使用 Prism 框架时,有多种方式可以注册服务和依赖项
  • 最大子数组和
  • vector和docker的区别?
  • RK3568平台开发系列讲解(GPIO篇)基于整数的GPIO接口
  • https网站 请求http图片报错:net::ERR_SSL_PROTOCOL_ERROR
  • 低空载功耗,高能源利用率 BDA5-20W BOSHIDA DCDC
  • 区块链赋能Web3:数据透明与隐私保护的新纪元
  • 如何解决亚马逊商家IP问题:静态住宅IP的优势与选择指南
  • C#界面设计
  • 深度学习中gpu的写法
  • 另一个角度的“业务向前,数据库向后”
  • Rust 整数
  • vue读取本地excel文件并渲染到列表页面
  • 低代码开发
  • Tofu AI视频处理模块视频输入配置方法