不久之前,图灵群的小雨学姐转发了一道谜题:要从一堆乱码中获取加入某QQ群的验证码。几经搜索,终于利用各种base64,MD5,zip,lzo等加解密工具,把题目解出来了。结果并不重要,重要的是在解题的过程中发现了一个新的领域:CTF。

什么是CTF:

CTF全称Capture The Flag,即夺旗比赛,衍生自古代军事战争模式,两队人马前往对方基地夺旗,每队人马须在保护好己方旗帜的情况下将对方旗帜带回基地。在如今的计算机领域中,CTF已经成为安(hei)全(ke)竞赛的一种重要比赛形式,参赛选手往往需要组队参加,通过团队之间的相互合作使用逆向、解密、取证分析、渗透利用等技术最终取得flag。

CTF的比赛形式:

CTF夺旗赛通常有两种形式,解题模式(Jeopardy)和攻防模式(Attack-Defense)。

在解题模式的比赛中,主办方会提供一系列不同类型的赛题,比如上线一个有漏洞的服务、提供一段网络流量、给出一个加密后的数据或经过隐写后的文件等,他们将 flag 隐藏在这些赛题中,选手们通过比拼解题来一决高下。

在攻防模式比赛中,主办方会事先编写一系列有漏洞的服务,并将它们安装在每个参赛队伍都相同的环境中,参赛队伍一方面需要修补自己服务的漏洞,同时也需要去攻击对手们的服务、拿到对手环境中的 flag 来得分,攻防模式的竞赛往往比解题模式的竞赛更接近真实环境,比赛过程也更加激烈。

CTF的常见题型:

一般在CTF比赛中,会涉及MISC,PPC,CRYPTO,PWN,REVERSE,WEB,STEGA这几种题目

  1. MISC(miscellaneous)类型的题目比较杂乱,可能要分析数据,可能需要百度一下,还可能需要脑筋急转弯

  2. PPC(Professionally ProgramCoder)会考察一些编程类的题目

  3. CRYPTO是密码学,考察各种加解密技术,当然这和软件加密解密的REVERSE技术是两码事

  4. REVERSE指逆向工程

  5. PWN在黑客俚语中代表着,攻破,取得权限,多为溢出类题目

  6. STEGA(Steganography)会将flag隐藏到各种有码无码高清不高清的图片和音像制品中

  7. WEB题目不用多说,大家都懂的。。。

以上科普内容转自http://ctf.idf.cn/。同时该网站还提供了不少CTF的题目(CTF训练营),有兴趣的童鞋可以自行前往。

值得一提的是,我的硕士研究方向就是数字水印和图像的隐写术(Steganography),颇有点找到组织的感觉。这么说来,我也是做信息安全科班出身的呀。

通过做CTF训练营里面的题目,我又知道了几个新的加密方法,比如猪圈密码,培根密码,栅栏加密等等。还知道了有一种编程语言叫做Brainfuck,在网上下载了一个python版的解释器,只有几行代码,但居然真的能运行。

以上,分享给对安(hei)全(ke)技术感兴趣,但还不知道CTF的小伙伴们。

PS:附图就是有趣的猪圈密码

enter image description here