• 网络安全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等。
    最终目标:掌握安卓逆向分析、安卓语言等。

    参考文献:


    1. CTF常见的解题模式 ↩︎ ↩︎ ↩︎

    2. CTF中常用工具大全 ↩︎

  • 相关阅读:
    Spring @DependsOn 和 @ConditionalOnBean 的区别
    在 SQL Server 中,可以使用内置函数 NEWID() 来生成一个随机的 GUID(全局唯一标识符)。可以将此 GUID 作为字符串拼接到查询结果中。
    如何将本地项目推送到gitee仓库
    java基础巩固16
    Flink SQL 自定义 Connector
    【无标题】
    Kubernetes集群部署踩坑记录
    家具vr虚拟交互展示外包制作
    Sqilte3初步教程
    rmq发送消息-服务端
  • 原文地址:https://blog.csdn.net/qq_25953411/article/details/127012112