学习交流
学习交流,或者遇到不会的可以+qq:3455475542
前言
这道题目主要考的是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中就无法显示,这个很明显的就是图片的宽高被修改了。 我们要利用脚本,把图片的宽高重新计算出来
脚本附上:
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:
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中,方法都是一样的,我就不一一列举了。
|