CTF(Misc)初体验

CTF是什么

CTF(Capture The Flag)中文一般译作夺旗赛,在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。CTF起源于1996年DEFCON全球黑客大会,以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式。发展至今,已经成为全球范围网络安全圈流行的竞赛形式,2013年全球举办了超过五十场国际性CTF赛事。而DEFCON作为CTF赛制的发源地,DEFCON CTF也成为了目前全球最高技术水平和影响力的CTF竞赛,类似于CTF赛场中的“世界杯” 。

CTF的题目形式

  • MISC(安全杂项)

全称Miscellaneous。题目涉及流量分析、电子取证、人肉搜索、数据分析、大数据统计等等,覆盖面比较广。我们平时看到的社工类题目;给你一个流量包让你分析的题目;取证分析题目,都属于这类题目。主要考查参赛选手的各种基础综合知识,考察范围比较广。

  • PPC(编程类)

全称Professionally Program Coder。题目涉及到程序编写、编程算法实现。算法的逆向编写,批量处理等,有时候用编程去处理问题,会方便的多。当然PPC相比ACM来说,还是较为容易的。至于编程语言嘛,推荐使用Python来尝试。这部分主要考察选手的快速编程能力。

  • REVERSE(逆向)

全称reverse。题目涉及到软件逆向、破解技术等,要求有较强的反汇编、反编译扎实功底。需要掌握汇编,堆栈、寄存器方面的知识。有好的逻辑思维能力。主要考查参赛选手的逆向分析能力。此类题目也是线下比赛的考察重点。

  • CRYPTO(密码学)

全称Cryptography。题目考察各种加解密技术,包括古典加密技术、现代加密技术甚至出题者自创加密技术。实验吧“角斗场”中,这样的题目汇集的最多。这部分主要考查参赛选手密码学相关知识点。

  • WEB(web类)

WEB应用在今天越来越广泛,也是CTF夺旗竞赛中的主要题型,题目涉及到常见的Web漏洞,诸如注入、XSS、文件包含、代码审计、上传等漏洞。这些题目都不是简单的注入、上传题目,至少会有一层的安全过滤,需要选手想办法绕过。且Web题目是国内比较多也是大家比较喜欢的题目。因为大多数人开始安全都是从web日站开始的。

MISC简单示例

在MISC中,一般会给我们图片或者文件与压缩包,在我做题的过程中,出题者给出了如下一张图片
GG_

而题目的描述为”当培根掉到猪圈里会引起怎样的火花???拭目以待吧!!!“似乎有点奇怪,而且图片中间还有一些奇怪的字符。此时我们根据描述,可以去分别看看”培根“与”猪圈“是什么。在浏览器搜索可以知道它们分别指的是培根密码猪圈密码

1
我们可以发现图上的字符与我们上图的字符有点像,我们可以试着自己翻译或者去在线翻译,得到一串字符”ababbababbbababbabbababbaaaabbbaab“而这串字符又与培根密码有相似之处

2
此时我们对照翻译就是它的正确明文了(翻译为出来得到”MMXYYD“)。

MISC图片隐写

  • 常见图片隐写

1隐藏在图片属性里

这种方式图片隐藏的flag我一般可以右键查看文件属性,来查看属性中有无对应的flag当然也有可能是一串经过加密的字符,我们可以通过其特性来找出相应的加密方法(属性里一般也会附带上经纬度,所以尽量不要发原图暴露自己的信息哦)

2将压缩包伪装为图片

一般来说,这种图片看起来与普通图片别无两样,我们可以通过binwalk查看,或者是采用查看压缩包的形式来查看该图片,而flag可能就藏在该图片的某个文件夹之类。

3藏在图片的字节之中

这类题我们一般可以将图片放入WinHex或者是010 Editor中来查看而图片常见的文件格式如下表所示

文件格式 文件头 文件尾
JEPG(jpg) FFD8FF FF D9
PNG (png) 89504E47 AE 42 60 82
GIF (gif) 47494638 00 3B

在这里我们以下图为例

3

我们可以先右键查看它的属性
4

发现并没有相关解题信息,我们再以压缩包形式打开,也没有发现其他文件。此时我们将图片拖入010 Editor中查看它的文件头与文件尾。

5

6

我们与上述表格对比,发现在文件尾”FF D9”后本该什么也没有,但这里多出一串字符,而字符中的“CCSUCTF{010_3d1t0r_15_4_g00d_t00l}”就是我们要的答案了

  • LSB隐写

LSB即为最低有效位(Least Significant Bit,lsb),我们知道,图片中的图像像素一般是由RGB三原色(红绿蓝)组成,每一种颜色占用8位,取值范围为0x00~0xFF,即有256种颜色,一共包含了256的3次方的颜色,即16777216种颜色。而人类的眼睛可以区分约1000万种不同的颜色,这就意味着人类的眼睛无法区分余下的颜色大约有6777216种。

7

十进制的235表示的是绿色,我们修改了在二进制中的最低位,但是颜色看起来依旧没有变化。我们就可以修改最低位中的信息,实现信息的隐写。

8

而我们在解题过程中用到一款名为“StegSolve”的工具

9

在该软件我们可以通过给red,green,blue的0通道打勾来查看图片隐藏的信息。我们用下图来做示例

10

我们将文件导入软件并勾选三色的0通道来找到隐藏信息,最终效果如下

11

最终我们找到的本题的flag

结语

其实这个博客在上周前就已经搭建好了,一直想写点东西,但奈何事情有点多,这几天将CTF题做了一部分终于斗胆写点东西,如果写的太差,还望大佬见谅

ok收工,看银魂去

11

[1]: https://zhuanlan.zhihu.com/p/461716971 “ 网安合天实验室”