2022年中职“网络安全“—隐藏信息探索(misc)

本文介绍CTF竞赛中隐藏信息探索任务的解决方法,包括图片信息隐写、十六进制编辑器使用技巧及常见文件头识别等。通过具体案例演示如何从图片、文档中提取隐藏的flag。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

这道题目主要考的是CTF中的杂项(misc)中的图片信息隐写,和对于一些工具的使用

隐藏信息探索

1.访问服务器的FTP服务,下载图片QR,从图片中获取flag,并将flag提交;

说明:由于二维码发出去违规,所以这题我只讲思路,如果还不懂得话,可以Q+我

从图片中可以看到二维码的定位角位置出现偏移,那么我们就可以通过拼接把二维码的定位符,拼接成正确的位置。
在比赛的时候我们可以使用windows电脑自带的图片编辑工具“图画”

先把图片分割成四个部分

然后再旋转定位角,变成正常的二维码图片

拼接成这个这个样子就ok了,然后我们保存,使用工具CQR.exe扫描二维码就行了

在这里插入图片描述

在这里插入图片描述

flag{xqFcT59a7iQw}

2.访问服务器的FTP服务,下载文件document,从文件中获取flag,并将flag提交;

在这里插入图片描述

打开这个word文档,但是并没有发现flag。
我们换16进制编辑器“HxDx64”来看看

在这里插入图片描述

发现这文件头不是word文件的格式,而是zip的文件头。

这里我列举一些常见的文件头尾
JPEG (jpg)
文件头:FFD8FF 文件尾:FF D9 
PNG (png)
文件头:89504E47 文件尾:AE 42 60 82
GIF (gif)   
文件头:47494638 文件尾:00 3B
ZIP Archive (zip)
文件头:504B0304 文件尾:50 4B
TIFF (tif),  
文件头:49492A00
Windows Bitmap (bmp)
文件头:424D
CAD (dwg) 
文件头:41433130 
Adobe Photoshop (psd)
文件头:38425053 
Rich Text Format (rtf)
文件头:7B5C727466

那么我们就把文件的后缀修改为zip

在这里插入图片描述

解压出来,发现了一堆的xml文件,我们尝试在这里面寻找flag

在这里插入图片描述

最后在word这个目录下的document.xml中找到flag

flag{RFCXQ0gy}

3.访问服务器的FTP服务,下载图片beach,从图片中获取flag,并将flag提交;

查看这个图片,并未发现一些有价值的信息
我们尝试把它放到kali里面使用工具binwalk尝试能不能获取到有价值的信息

在这里插入图片描述

发现这个图片里面隐藏了一个zip文件
使用命令:binwalk -e 图片
把zip文件分离出来

在这里插入图片描述

这个工具分离的时候会自动在当前目录生成一下_beach.jpg.extracted这种格式的文件夹,被分离的文件就在这目录内

在这里插入图片描述

尝试解压这个zip文件发现要密码,一开始以为是伪加密,但是使用二进制编辑器查看后,发现并不是伪加密,然后以为是弱口令,写了个脚本来跑,但是也没有跑出来,只能重新查找图片是否含有,有价值的信息了。

在这里插入图片描述

最后在字节流中找到了一个base64加密的信息。
对这条字符串进行解密

在这里插入图片描述

感觉这个就是密码。

在这里插入图片描述

解压成功获取flag

flag{nfzgVNXCxibcjxn1}

4.访问服务器的FTP服务,下载图片grass,从图片中获取flag,并将flag提交;

解法和上题的一样,都是使用binwalk,查看是否存在隐藏文件

在这里插入图片描述

这题就是一个伪加密,但是binwalk这个工具,会自动帮我们绕过伪加密

在这里插入图片描述

flag{IYS9FWWLY4ACf1o8}

5.访问服务器的FTP服务,下载图片tree,从图片中获取flag,并将flag提交;

在这里插入图片描述

在这里插入图片描述

这个图片在放入kali中就无法显示,这个很明显的就是图片的宽高被修改了。
我们要利用脚本,把图片的宽高重新计算出来

脚本附上:

#coding:utf-8
import binascii 
import struct
crcbp = open("xxx.png","rb").read()     #此处填上文件名
for i in range(1024):
    for j in range(1024):
        data = crcbp[12:16] + struct.pack('>i',i) + struct.pack('>i',j) + crcbp[24:29]
        crc32 = binascii.crc32(data) & 0xffffffff
        if crc32 == 0xd15b75ae:     #此处填上CRC值
            print (i,j)
            print ("hex",hex(i),hex(j))

在这里插入图片描述

在这里插入图片描述

通过比对发现高的值,被修改了。
修改后得到flag

在这里插入图片描述

flag{SwNgVibDLp}

6.访问服务器的FTP服务,下载压缩文件style,从压缩文件中获取flag,并将flag提交。

解压压缩文件。

在这里插入图片描述

把这四张图片放入16进制编辑器中,通过观察文件头和文件尾发现问题,其中前三张图片的文件头为FFD8FF格式是jpg文件,但是它们的末尾却不是jpg文件的FF D9结束的,而是png文件的AE 42 60 82结束的。

在这里插入图片描述
在这里插入图片描述

其中orchid,chrysanthemum,bamboo这三张图片全是这个样的。
从这里其实就可以判断出来,这三张图片可能还隐藏了一个png格式的图片,那么我们就可以尝试找出来png的文件头。
直接CTRL+F查看“89504E47”png图片的文件头
在这里插入图片描述

在这里插入图片描述

果然找到了png的文件头,接下来就很简单了,我们直接从png的文件头“89504E47”16进制符到png文件尾,全部复制出来,然后新建一个空白的16进制文件,复制进去然后保存,格式改为png的。

在这里插入图片描述

ctrl+n新建一个16进制文件

在这里插入图片描述

将刚刚复制的文件保存到里面

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

这样就获取到了flag的三分之一,还有两份在图片:chrysanthemum,bamboo中,方法都是一样的,我就不一一列举了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

acaciaf

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

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

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

打赏作者

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

抵扣说明:

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

余额充值