MISC学习第三天

今天学习做一些简单的隐写术的题,来了解一些关于图片的相关知识。

第一题简单的隐写


题目

这个一个小兔子,我先直接用Notepad打天,并搜索一下flag和key,发现没有,当浏览内容的最后时,发现一串有趣的十进制如下。


发现一串十进制数

打开ASCII码表后发现107就是k


k的ASCII码

那一定就是这串十进制就是flag了。

写一个小的python脚本吧

str ='107;101;121;123;121;111;117;32;97;114;101;32;114;105;103;104;116;125'

str_ascii =''

for x in str.split(';'):

str_ascii = str_ascii +chr(int(x))

print(str_ascii)

得到结果key{you are right}

第二题隐写1

这是Bugku中的隐写1,这个题看到之后运用上面的方法打开后发现没有什么信息,将这个文件在kali中查看一下,发现不能打开,而在windows是可以打开这个图片的。


Kali不能打开,提示CRC错误


Windows就可以顺利打开图片PNG的文件结构,这说明这个图片应该是修改过图片的大小,所以运用工具打开看图片文件格式。根据PNG文件的定义来说,其文件头位置总是由位固定的字节来描述的:

[if !supportLists]l [endif]十进制数

137 80 78 71 13 10 26 10

[if !supportLists]l [endif]十六进制数

89 50 4E 47 0D 0A 1A 0A

其中第一个字节0x89超出了ASCII字符的范围,这是为了避免某些软件将PNG文件当做文本文件来处理。文件中剩余的部分由3个以上的PNG的数据块(Chunk)按照特定的顺序组成,因此,一个标准的PNG文件结构应该如下:

PNG文件标志     PNG数据块     ……    PNG数据块

数据块结构

PNG文件中,每个数据块由4个部分组成,如下:

名称字节数说明

Length (长度)4字节指定数据块中数据域的长度,其长度不超过(231-1)字节

Chunk Type Code (数据块类型码)4字节数据块类型码由ASCII字母(A-Z和a-z)组成

Chunk Data (数据块数据)可变长度存储按照Chunk Type Code指定的数据

CRC (循环冗余检测)4字节存储用来检测是否有错误的循环冗余码

CRC(cyclic redundancy check)域中的值是对Chunk Type Code域和Chunk Data域中的数据进行计算得到的。CRC具体算法定义在ISO 3309和ITU-T V.42中,其值按下面的CRC码生成多项式进行计算:

x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1

CRC:一种校验算法。仅仅用来校验数据的正确性的

下面,我们依次来了解一下各个关键数据块的结构吧。

IHDR

文件头数据块IHDR(header chunk):它包含有PNG文件中存储的图像数据的基本信息,并要作为第一个数据块出现在PNG数据流中,而且一个PNG数据流中只能有一个文件头数据块。

文件头数据块由13字节组成,它的格式如下表所示。

域的名称字节数说明

Width4 bytes图像宽度,以像素为单位

Height4 bytes图像高度,以像素为单位

Bit depth1 byte图像深度: 索引彩色图像:1,2,4或8 灰度图像:1,2,4,8或16 真彩色图像:8或16

ColorType1 byte颜色类型:0:灰度图像, 1,2,4,8或16 2:真彩色图像,8或16 3:索引彩色图像,1,2,4或8 4:带α通道数据的灰度图像,8或16 6:带α通道数据的真彩色图像,8或16

Compression method1 byte压缩方法(LZ77派生算法)

Filter method1 byte滤波器方法

Interlace method1 byte隔行扫描方法:0:非隔行扫描 1: Adam7(由Adam M. Costello开发的7遍隔行扫描方法)

文件结构

根据上面的描述,我画横线的八位就是高度和宽度设置的位置,我们将A4改为F4然后再保存。发现flag

发现flag


第三题隐写2

题目为BugKu杂项中的隐写2,在kali中打开是如下的图片


先用binwalk分析一下图片内容,发现有zip的文件。


所以对其进行分离。得到flag.rar文件如图。因为binwalk分析出来是zip文件,所以修改为zip格式。


在解压zip时,发现有密码,查看提示图片说是3个数字为密码。所以运用fcrachzip工具进行爆破。得出密码871


解压后发现还是图片


运用notepad打开发现


但这个是base64编码,要解码。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容