BugKu CTF(杂项篇MISC)—想要种子吗

BugKu CTF(杂项篇MISC)—想要种子吗

我是小白,文章参考以下两位大佬的

Keytime21
网络安全研究所

bugku 想要种子吗

BugKu CTF(杂项篇MISC)—想要种子吗_第1张图片

先看看图片属性

BugKu CTF(杂项篇MISC)—想要种子吗_第2张图片

发现隐藏关键信息。STEGHIDE。这是一种图片隐写方法。

在kali系统上安装STEGHIDE工具。安装步骤如下

 apt install steghide

查看图片中嵌入的文件信息

steghide info filename

隐藏文件

steghide embed -cf coverfile -ef embedfile

提取文件

steghide extract -sf STEGOFILE

提取文件

steghide info torrent.jpg 
steghide extract -sf  torrent.jpg      

BugKu CTF(杂项篇MISC)—想要种子吗_第3张图片

打开123.txt,发现一个百度网盘地址

里面是一个某网盘的链接和密码。得到一个压缩包文件,有密码

hit里面six six six联想到应该是六位数密码。爆破一下得到密码

BugKu CTF(杂项篇MISC)—想要种子吗_第4张图片

得到如下图片

BugKu CTF(杂项篇MISC)—想要种子吗_第5张图片

010 editor编辑器里看看

BugKu CTF(杂项篇MISC)—想要种子吗_第6张图片

发现有504B0304开头,有压缩包,应该是文件包含

binwalk -e 123.png

BugKu CTF(杂项篇MISC)—想要种子吗_第7张图片

打开flag.png文件加载失败

image-20210918164053120

再拖到010 editor编辑器里看看,看看有crc报错,一般这种都是高度有问题

脚本跑一下得到尺寸

import zlib
import struct

filename = 'flag.png'
with open(filename, 'rb') as f:
    all_b = f.read()
    crc32key = int(all_b[29:33].hex(),16)
    data = bytearray(all_b[12:29])
    n = 4095            #理论上0xffffffff,但考虑到屏幕实际/cpu,0x0fff就差不多了
    for w in range(n):          #高和宽一起爆破
        width = bytearray(struct.pack('>i', w))     #q为8字节,i为4字节,h为2字节
        for h in range(n):
            height = bytearray(struct.pack('>i', h))
            for x in range(4):
                data[x+4] = width[x]
                data[x+8] = height[x]
            crc32result = zlib.crc32(data)
            if crc32result == crc32key:
                print("宽为:",end="")
                print(width)
                print("高为:",end="")
                print(height)
                exit(0)

结果

BugKu CTF(杂项篇MISC)—想要种子吗_第8张图片

更改前后

image-20210918165351572

image-20210918165334172

flag.png末尾提示网址

image-20210918165602022

维吉尼亚密码网站

flag.png打开

BugKu CTF(杂项篇MISC)—想要种子吗_第9张图片

fkyg{SfirgsXmuqRoqpemr}

维吉尼亚解密。常规网站解密是需要密钥的,但是提示给的网站可以枚举。

BugKu CTF(杂项篇MISC)—想要种子吗_第10张图片

flag{ThisisYourTorrent}

你可能感兴趣的:(BugKu,CTF,网络安全)