ctf中的misc介绍(上)

目录

一、misc的介绍

二、使用到的工具

1、010editor

2、Binwalk(kali自带)

3、Notepad++

4、Stegsolve

5、audacity

三、相关题型

文件/图片操作与隐写

文件类型的识别

1.使用linux中的file命令查看文件属性

2.使用010editer或者Winhex查看文件的文件头

3.既然会出现没有后缀的文件,那当然也会出现缺少头部的情况,可以根据后缀名来选择文件头部进行填充,如果没有后缀名,则查看文件尾部来判断文件类型。

文件分离操作

1.binwalk(binwalk工具在遇到压缩包时,会自动解压。)

2.formost

3.dd命令(相当难用,操作复杂,适用于解决难题):

4.winhex(手动分离)  

文件合并操作

1.Linux系统中合并文件: 

2.Windows下的文件合并:

文件内容的隐写

例题(BUUCTF的你竟然赶我走):

图片隐写

常见的图片隐写:细微的颜色差别、GIF图多帧隐藏(图片通道隐藏、不同帧图信息隐藏、不同帧对比隐写)、Exif信息隐藏、图片修复(图片头修复、图片尾修复、CRC校验修复、长宽高修复)、最低有效位LSB隐写、图片加密(Stegdetect、Outguess、Jphide、F5)

图片混合

例题:

1.隐藏在动图之中(BUUCTF中的金三胖)

2.隐写图片的大小(BUUCTF中的大白)

3.隐写在图片的属性中(BUUCTF中文件中的秘密)

压缩包的分析

解题方式:

暴力破解加密密码(ARCHPR4.54):

例题(BUUCTF中的rar):


一、misc的介绍

MISC,中文即杂项,包括隐写,数据还原,脑洞、社会工程、压缩包解密、流量分析取证、与信息安全相关的大数据等

二、使用到的工具

1、010editor

查看文件类型

2、Binwalk(kali自带)

合并文件

3、Notepad++

进行字符串处理

4、Stegsolve

图片隐写处理

5、audacity

音频隐写处理

三、相关题型

文件/图片操作与隐写

文件类型的识别

杂项题目主要是以文件附件作为题目,但是给的文件不一定是有后缀名的,这就需要我们识别这些文件

1.使用linux中的file命令查看文件属性

使用方法:
将文件复制到kail或者带有file工具的系统中,使用file查看文件。

将文件后缀名补上即可正常打开。
然后根据实际情况进行初步判断可能是什么类型的题目。

2.使用010editer或者Winhex查看文件的文件头

常见的文件头:

3.既然会出现没有后缀的文件,那当然也会出现缺少头部的情况,可以根据后缀名来选择文件头部进行填充,如果没有后缀名,则查看文件尾部来判断文件类型。

以下是常见的文件尾部:

(1)zip文件的结尾以一串504B0506开始。

(2)rar文件以C43D7B00400700结尾。

(3)JPG文件结尾为FFD9

(4)PNG文件结尾为000049454E44AE426082。

(5)Gif文件结尾为3B。

文件分离操作

1.binwalk(binwalk工具在遇到压缩包时,会自动解压。)

Binwalk是一个在Linux下用于分析和分离文件的工具,它能够快速判断文件是否由多个文件合并而成,并将其进行分离。如果分离成功,会在目标文件所在的目录下生成一个名为"文件名_extracted"的文件夹,里面存放着分离后的文件。

相关命令:

分析文件:binwalk filename

分离文件:binwalk -e filename
          binwalk -e .... --run-as=root

分析文件: 

分离文件,会生成一个新的文件夹:

2.formost

如果binwalk无法正确分离出文件,可以使用foremost,将目标文件复制到kali中,成功执行后,会在目标文件的文件目录下生成我们设置的目录,目录中会按文件类型分离出文件。

该命令有的kali没有自带,可能需要额外下载:

sudo apt install foremost

命令:
foremost 文件名 -o 输出文件名

3.dd命令(相当难用,操作复杂,适用于解决难题):

当无法使用自动工具正确分离文件时,可以借助 dd 命令手动实现文件分离。

使用的格式:

dd if=源文件 of=目标文件名 bs=1 skip=开始分离的字节数
参数说明:
if=file        /*输入文件名,缺省为标准输入*/
of=file        /*输出文件名,缺省为标准输出*/
bs=bytes       /*同时设置读写块的大小为bytes,可以代替ibs和obs*/
skip=blocks    /*从输入文件开头跳过blocks个块后再开始复制*/

4.winhex(手动分离)  

除了使用 dd 命令之外,还可以通过使用 WinHex 工具来手动分离文件。只需将目标文件拖放到 WinHex 中,然后定位到需要分离的部分,最后进行复制即可完成操作。

文件合并操作

1.Linux系统中合并文件: 

命令:cat 需要合并的文件 > 输出的文件名

完整性检测:Linux下计算文件md5:md5sum 文件名

2.Windows下的文件合并:

使用场景:windows下,通常要对文件名相似的文件进行批量合并,格式为:

copy /B 合并的文件(文件1+文件2+...+文件n) 输出的文件命令

完整性检测:windows下计算md5,格式为:

certutil -hashfile 文件名 md5

文件内容的隐写

文件内容隐写,就是直接将KEY以十六进制的形式写在文件中,通常在文件的开头或结尾部分,分析时通常重点观察文件开头和结尾部分。如果在文件中间部分,通常搜索关键字KEY或者flag来查找隐藏内容。

在Windows系统中,通常将要识别的文件使用winhex打开,查找具有关键字或明显与文件内容不和谐的部分---通常优先观察文件首部和尾部,再搜索flag或key等关键字。

 

例题(BUUCTF的你竟然赶我走):

图片隐写

 

常见的图片隐写:细微的颜色差别、GIF图多帧隐藏(图片通道隐藏、不同帧图信息隐藏、不同帧对比隐写)、Exif信息隐藏、图片修复(图片头修复、图片尾修复、CRC校验修复、长宽高修复)、最低有效位LSB隐写、图片加密(Stegdetect、Outguess、Jphide、F5)
图片混合

图片混合也就是把两张图片重叠在一起,由于颜色的重叠或者其他一些因素,我们只能看到其中的一张图片,达到的这种效果就相当于隐藏了另一张图片。

这时我们就需要借助工具来对混合后的图片进行分离:Stepsolve.jar

例题:
1.隐藏在动图之中(BUUCTF中的金三胖)

下载完附件后打开发现是一个GIF动图,并且在播放过程中有红色字符闪过,怀疑信息被隐藏在动图的某些帧里,使用stegsolve.jar打开该动图(java -jar Stegsolve.jar)并使用analyse----frame browser来逐帧查看:

2.隐写图片的大小(BUUCTF中的大白)

先查看图片宽高

放入010editer,修改宽高,重新打开照片,得到flag

3.隐写在图片的属性中(BUUCTF中文件中的秘密)

flag在图片的属性里

压缩包的分析

一个zip的组成有三部分:压缩源文件数据区+压缩源文件目录区+压缩源文件目录结束标志

可参考:CTF-MISC总结_ctfmisc-CSDN博客

1.无加密

数据区 的全局加密应当为 00 00

目录区 的全局方式位标记应当为 00 00

2.假加密(伪加密)

数据区 的全局加密应当为 00 00

目录区 的全局方式位标记应当为 09 00

3.真加密

数据区 的全局加密应当为 09 00

目录区 的全局方式位标记应当为 09 00

4.压缩源文件数据区  50 4B 03 04开头

+压缩源文件目录区 50 4B 01 02开头

+压缩源文件目录结束标志50 4B 05 06开头

识别一个zip文件是否加密主要是看压缩源文件 (数据区) 的全局方式位标记和压缩源文件 (目录区) 的全局方式位标记,关键操作在其中的全局方式标记的第一字节数字的奇偶上,其它的不管为何值,都不影响它的加密属性。第一字节数字为偶数表示无加密,例如:00,02,04等;为奇数表示有加密,例如01,03,09等。

解题方式:

真加密:把这个zip文件拖入winhex中,把09 00修改为00 00保存后即可得到flag

伪加密:把全方位标记区 的 01 00 或 09 00 改为 00 00

暴力破解加密密码(ARCHPR4.54):

如果设置了加密密码,可以尝试借助工具进行暴力破解

需要注意的是攻击类型中的“掩码”,攻击类型选择掩码时可以进行复杂的暴力破解,比如知道密码前3位是abc,后3位为数字,则在攻击类型选择掩码,在掩码处输入acb???,暴力范围选项选择所有数字,打开要破解的文件,点击破解。此时???的部分会被我们选择的暴力破解范围中的字符代替。 

例题(BUUCTF中的rar):

使用暴力破解工具

口令就是压缩包的密码

CTF中的Miscellaneous(简称Misc)是指一类涵盖了多个领域的题目,常见的包括密码学、网络协议、二进制分析等。 在CTF比赛中,解决这类题目的方法主要有以下几种: 1. 阅读题目描述:首先要仔细阅读题目描述,通常会提供一些线索或提示,例如题目类型、题目背景或所需的技术知识。这些大致的信息能够帮助你确定解题方法的方向。 2. 分析题目附件或源代码:如果题目提供了附件或源代码,要仔细分析其中的内容。有时可能需要进行逆向工程、二进制分析或查找隐藏信息。需要注意的是,不同题目类型可能需要使用不同的分析工具和技术。 3. 猜测和尝试:在整个解题过程中,可能需要多次猜测和尝试。例如,对于密码学类题目,尝试使用不同类型的密码学算法进行解密;对于网络协议类题目,尝试使用Wireshark等工具进行数据包分析。 4. 查找前人的经验:CTF解题是一个积累经验的过程,很多题目类型都有经典解法,可以通过学习前人的经验来提高解题效率。可以参考CTF比赛的writeup、CTF讨论论坛或CTF相关的学习资源等。 5. 团队合作:在解题过程中,可以与队友或其他选手进行合作,分享解题过程中的思路和发现。这样可以锻炼团队合作的能力,也能够快速找到解题思路或解题方法。 综上所述,CTFMisc题目的解题方法主要包括阅读题目描述、分析附件或源代码、猜测和尝试、查找前人的经验以及团队合作等。通过不断学习和实践,提高解题的技巧和经验,才能更好地应对各种Misc题目的挑战。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值