CTF

CTF(Capture The Flag)中文一般译作夺旗赛,在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。其大致流程是,参赛团队之间通过进行攻防对抗、程序分析等形式,率先从主办方给出的比赛环境中得到一串具有一定格式的字符串或其他内容,并将其提交给主办方,从而夺得分数。为了方便称呼,我们把这样的内容称之为“Flag”。
CTF起源于1996年DEFCON全球黑客大会,以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式。发展至今,已经成为全球范围网络安全圈流行的竞赛形式,2013年全球举办了超过五十场国际性CTF赛事。而DEFCON作为CTF赛制的发源地,DEFCON CTF也成为了目前全球最高技术水平和影响力的CTF竞赛,类似于CTF赛场中的“世界杯” 。

题目类型

CTF比赛通常包含的题目类型有7种大分类,包括MISCPPCCRYPTOPWNREVERSEWEBSTEGA

  • MISC(Miscellaneous)类型,即安全杂项,题目或涉及流量分析、电子取证、人肉搜索、数据分析等等;
  • PPC(Professionally Program Coder)类型,即编程类题目,题目涉及到编程算法,相比ACM较为容易;
  • CRYPTO(Cryptography)类型,即密码学,题目考察各种加解密技术,包括古典加密技术、现代加密技术甚至出题者自创加密技术;
  • PWN类型,PWN在黑客俚语中代表着攻破、取得权限,多为溢出类题目;(涉及漏洞比较多)
  • REVERSE类型,即逆向工程,题目涉及到软件逆向、破解技术;(比较偏向于这个)
  • STEGA(Steganography)类型,即隐写术,题目的Flag会隐藏到图片、音频、视频等各类数据载体中供参赛者获取;
  • WEB类型,即题目会涉及到常见的Web漏洞,诸如注入、XSS、文件包含、代码执行等漏洞。
    而本文主要记录的是近年国内CTF中的RE(逆向)类题目,或者一些自己觉得有意思的[[CrackME]](https://www.52pojie.cn/thread-709699-1-1.html)

    国内知名CTF大赛和相关资料

    推荐书籍

    比较基础:
    《CTF安全竞赛入门》
    《极限黑客攻防:CTF赛题揭秘(博文视点出品)》
    比较实战:
    《从0到1:CTFer成长之路(精装版)》
    《CTF特训营:技术详解、解题方法与竞赛技巧》
    线上资源与赛题解析地址

    CTFTime

    国内网的CTF比赛信息

    【★比较大】网鼎杯

    网鼎杯”网络安全大赛2018年在北京举办了第一届,共吸引了全国7000支队伍、2.25万人参赛,是我国迄今为止规模最大、覆盖面最广的一次高水平网络安全大赛,这对于进一步磨砺网络安全攻防能力,发现网络安全专门人才,提升全社会网络安全意识具有重要意义。

啊这,两万多人,就算凑数都能凑这么多人吗😅😅😅
比较有趣的是,根据行业分组。

  • 青龙:高等院校、职业院校、社会参赛队伍
  • 白虎:通信、交通、国防、政务部门等单位
  • 朱雀:能源、金融、政法、其他行业单位
  • 玄武:科研机构、科技企业、互联网企业、网安企业等单位

    XCTF

    XCTF联赛是由清华大学蓝莲花战队发起组织,网络空间安全人才基金和国家创新与发展战略研究会联合主办,赛宁网安总体承办,由高校、科研院所、安全企业、社会团体等共同组织,由业界知名企业赞助与支持,面向高校及科研院所学生、企业技术人员、网络安全技术爱好者等群体,旨在发现和培养网络安全技术人才的竞赛活动。

强网杯

湖湘杯

看雪

KCTF-2019
KCTF-2020
KCTF-2021
看雪论坛CTF区

吾爱破解

CTF区

工具和知识

基础知识

【👍推荐👍】【绿盟大讲堂】CTF夺旗赛最强秘籍PART1:密码学和隐写术
【👍推荐👍】【绿盟大讲堂】CTF夺旗赛最强秘籍PART2:WEB
CTF之加解密总结
CTF中常见的加解密(经典)
CTF密码学常见加解密总结

文件判断和文件头

拿到文件先要判断文件类型,需要查文件头
文件头

工具

【在线】编码 / 算法 / 杂项

CTF Tools

awesome-ctf

在线编译-菜鸟

BerylEnigma - 渗透测试和CTF工具集(主要实现一些加解密的功能,By三个大石头)

文本查看

推荐使用010Editor进行查看文件头或者文件内容。除此之外平常也很好用,比如搜索方式支持多种格式:
CTF🏁🏳‍🌈🏴‍☠️🚩RE Mobile - 图1

反编译

  1. Basic Vulnerabilities / 基本脆弱性
    1. Classic Stack Based Buffer Overflow / 经典的基于堆栈的缓冲区溢出
    2. Integer Overflow / 整数溢出
    3. Off-By-One Vulnerability (Stack Based) / 逐个关闭漏洞(基于堆栈)
  2. Bypassing Exploit Mitigation Techniques / 绕过开发缓解技术

    1. Bypassing NX bit using return-to-libc / 使用返回到libc绕过nx位
    2. Bypassing NX bit using chained return-to-libc / 使用链式返回到libc绕过nx位
    3. Bypasing ASLR / 绕过ASLR(地址随机化)
      1. Return-To-PLT / 使用返回PLT
      2. Brute Force / 暴力破解
      3. GOT overwrite and GOT dereference / GOT覆盖和取消引用
  3. Heap Vulnerabilities / 堆漏洞

    1. Heap Overflow Using Unlink / 使用取消链接的堆溢出
    2. Heap Overflow Using Malloc Maleficarum / 使用Malloc Maleficarum的堆溢出
    3. Off-By-One (Heap Based) / 单字节溢出((基于堆的)

    4. Use After Free / 释放后可重用

      图片

      CTF之图片隐写

      0x001:图片隐写之png高度隐藏+复合图片 0x002:图片隐写之jpg高度隐藏 0x003:图片隐写之pngcheck+隐藏二维码 0x004:图片隐写之gif修复+exiftool 0x005:图片隐写之双图对比+RGB通道隐写 0x006:gif文件头修复+identify每帧鉴别 0x007:文件头尾Hex逆序

C/C++语言题目

Python

Pyc文件

Python反编译
好像Python题中, 数据处理的偏多,考察点偏向于数据处理相关?进制转换和字符操作?