《CTF 解题技能之 MISC 基础》(上)

本篇旨在帮助在CTF-杂项方面零基础小白完完全全的从头开始讲解(全网最详细)


前言

本篇我们将会介绍杂项的基本做题思路 工具 虚拟机等具体用法 帮助你直接上手ctf

关于CTF所需要安装的工具和网安等环境配置  我已经全部整理好 免费后台找我领取即可(不卖课!)


提示:以下是本篇文章正文内容,下面案例可供参考

一、CTF中我们为什么从杂项开始?

Miscellaneous 简称 MISC,意思是杂项,混杂的意思  杂项是我们CTF所有赛道中最方便上手已经最简单的一种方式  他的特点在于使用的工具很多 只需要掌握工具的使用就足以应付我们的大多数题目了

二、杂项的类型

1.文件分离

0×00 文件-类型识别题目

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

使用场景:不知道后缀名,无法打开文件

1.1 file 命令

file 命令实际上是一个命令行工具,用来查看文件类型。
使用方法:
将文件复制到 kail 或者带有 file 工具的系统中,使用 file 查看文件。代码如下:

root@kali2:  file + 文件名

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

1.2 010Editor(工具)

010Editor 是一款快速且强大的十六进制编辑器。用来编辑二进制文件。有一个友好易于使用
的界面,无限次的 undo 和 redo 操作。另外还可以打印 x 十六进制的字节或者以书签的方式标
出某些重要的字节。我们可以通过使用 010Editor 查看文件的头部来判断类型。

以下是常见文件头:

 

 PNG 文件头中包含 IHDR 信息

 

 IHDR 的作用将在后续的图片类隐写中详细讲解:

当文件类型不确定时就可以尝试查看文件头来判断。

如果没有后缀名,也可以查看文件尾部来判断文件类型。

以下是常见的文件尾部:
zip 文件的结尾以一串 504B0506 开始

rar 文件以 C43D7B00400700 结尾

JPG 文件结尾为 FFD9

PNG 文件 结尾为 000049454E44AE426082

 Gif 文件结尾为 3B

1.3文件头残缺/错误

通常文件无法正常打开有两种情况,一种是文件头部残缺,另一种是文件头部字段错误

针对文件头部残缺 我们可以添加相应的文件头 针对字段错误,我们可以找一个相同类型的文件

进行替换。

 此时他会显示data 只有数据 我们进行数据修复

1.4 文件分离-类型题目

1.5 Binwalk(工具)

Binwalk 是一个自动提取文件系统,该工具可以自动完成指定文件的扫描,智能发掘潜藏在文
件中所有可疑的文件类型及文件系统。相比于之前介绍的 file 命令行工具来说,file 只能把
一个文件识别成一个类型的文件,很难看出是否隐藏着其他的文件,Binwalk 就能很好的完成
这项任务。

使用方法:

binwanlk  ang.jpg

binwalk ang.s -e

“-e”和“–extract”用于按照定义的配置文件中的提取方法从固件中提取探测到的文件系
统。
若提取成功则会生成一个_文件名_extracted 的目录,目录中存放的就是提取出的文件

1.6 foremost(工具)

 foremost 该工具通过分析不同类型文件的头、尾和内部数据结构,同镜像文件的数据进行比
对,以还原文件。它默认支持 19 种类型文件的恢复。用户还可以通过配置文件扩展支持其他文
件类型。

有时候 binwalk 无法正确分离出文件,这时候就可以使用 foremost,将目标文件复制到 kali
中,在终端中使用命令行进入文件所在文件夹,使用如下命令:
Foremost+file –o 输出目录名。

 如何安装foremost

参考链接:https://blog.csdn.net/qq_30445397/article/details/105787417

1.7 dd(工具)

前面介绍的两种都是自动化分离工具,dd 这个工具是一种半自动化工具,有的时候自动化工具
不能实现文件的分离,所以需要用这个工具来进行分离。
使用 dd 命令分离文件格式:dd if=源文件名 bs=1 skip=开始分离的字节数 of=目标文件名
参数说明:
if=file #输入文件名,缺省为标准输入。
of=file #输出文件名,缺省为标准输出。
bs=bytes #同时设置读写块的大小为 bytes ,可代替 ibs 和 obs 。
skip=blocks #从输入文件开头跳过 blocks 个块后再开始复制。
以 IDF 实验室“抓到一只苍蝇”为例,需要将获得的文件去除前 364 个字节:
dd if=s1 bs=1 skip=364 of=d1
使用 dd 命令分离文件格式:dd if=源文件名 bs=1 skip=开始分离的字节数 of=目标文件名
参数说明:
if=file #输入文件名,缺省为标准输入。
of=file #输出文件名,缺省为标准输出。
bs=bytes #同时设置读写块的大小为 bytes ,可代替 ibs 和 obs。
skip=blocks #从输入文件开头跳过 blocks 个块后再开始复制。
若需要将获得的文件去除前 364 个字节:
dd if=s1 bs=1 skip=364 of=d1

在实战时 我们可以先借助binwalk

查找他对应文件类型的十六进制在哪里 我们此时想取出zip文件可以输入

dd if=sim.jpg of=1111.zip bs =1 count=23046 skip=22895

有时候dd太麻烦我们也可以用010Editor来分离文件

 输入保存对应的后缀名即可

 

2.文件合并

 

3.图片隐写术

 

3.1 Exif

3.2 Stegsolve(工具)

stegsolve---图片隐写查看器
2 中的 LSB 隐写、3 中的一帧一帧的观察图片,都使用到了这个工具;
今天做 CTF 隐写术的题偶然发现一隐写图片查看的神器------stegsolve,分享给大家
stegsolve 下载地址:http://www.caesum.com/handbook/Stegsolve.jar
stegsolve 安装配置:配置好 Java 环境变量(就是需要安装 Java,然后配环境变量,具体
的配置过程上网一搜一堆,这里就不赘述)
配置好环境之后直接打开就可以使用
stegsolve 功能简介:
File Format:文件格式,这个主要是查看图片的具体信息
Data Extract:数据抽取,图片中隐藏数据的抽取
Frame Browser:帧浏览器,主要是对 GIF 之类的动图进行分解,动图变成一张张图片,便
于查看
Image Combiner:拼图,图片拼接。

3.3LSB 隐写

LSB 隐写


LSB 隐写,也就是最低有效位 (Least Significant Bit)。图片中的像数一般是由三原色组
成,由这三种原色可以组成其他各种颜色,例如在 PNG 图片的储存中,每个颜色会有 8bit,
LSB 隐写就是修改了像数中的最低的 1bit,写入加密信息,而人眼无法注意到前后的变化。
例如此图看起只是六只环保色猪头,但是其中包含了一张隐藏的二维码,我们可以通过工
具 Stegsolve.jar 打开此图,然后通过下方的按钮切换到 Gray bits,可以看到左上角出现了
隐写在该通道的二维码,扫描二维码即可得到 flag。

000代表最低有效位  右边的RGB BGR什么的可以多试试

3.4 zsteg(工具)

他会直接检测所有可能数据 

3.5 wbstego4(工具)

如果他是一个.bmp/pdf文件 我们首选用此工具进行解密

遇见jpg解不出来也可以转成Bmp

解出js文件用16禁止打开基本可以看到flag

3.6(python脚本进行处理)!!!重点

将以下脚本放在kali中运行,将目标文件放在脚本同目录下,将脚本的文件名修改为文件名

运行Python即可

#coding:utf-8
import PIL.Image
def foo():
       im = PIL.Image.open('01.bmp')
       im2 = im.copy()
       pix = im2.load()
       width,height=im2.size

    for x in xrange(0,width):
        for y in xrange(0,height):
            if pix[x,y]&0x1 == 0:
                pix[x,y]=0
             else:
                 pix[x,y]=255
       im2.show()
       pass
   if_name_ =='_main_':
      foo()
     print 'ok.'
    pass

3.7 TweakPNG(工具)

二维码只有一半阿之类的都是CRC高度计算错误

我们可以用脚本来计算宽度和高度  python png.py

3.8 Bftools

下载地址私我 挺难找的还是

3.9 SilentEye

3.10 Stegdetect

3.11 Jphide

3.12 outguess

4. 二维码处理

中间白色进行取反


总结、

介绍了这么多关于 CTF 基础类型的文件处理方法,为了方便大家梳理,提供一个思维导图给大家
来参考

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hqxnb666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值