XCTF-Misc1 a_good_idea Ditf

a_good_idea

附件是一张图片
XCTF-Misc1 a_good_idea Ditf_第1张图片

分析

查看图片备注、校验CRC、通道检查、LSB查看,都没什么问题。扔到Kali里面看看文件能不能分离出其他文件。
XCTF-Misc1 a_good_idea Ditf_第2张图片分离出来一个压缩包,里面包含一个txt和两张png
hint.txt提示:
XCTF-Misc1 a_good_idea Ditf_第3张图片
让我们关注像素。
两张图片to.png和to_do.png,对其进行对比。
StegSolve工具里面可以直接进行Image Combine
XCTF-Misc1 a_good_idea Ditf_第4张图片
当两张图片进行像素SUB减法运算时,呈现出一张二维码
XCTF-Misc1 a_good_idea Ditf_第5张图片
扫描二维码得到flag。
XCTF-Misc1 a_good_idea Ditf_第6张图片

Ditf

附件是一张图片
XCTF-Misc1 a_good_idea Ditf_第7张图片

分析

1. IHDR隐写

扔到Tweakpng中发现CRC校验错误
XCTF-Misc1 a_good_idea Ditf_第8张图片

扔到反推的脚本里面

#coding:utf-8
import binascii
import struct


crcbp = open("Ditf.png","rb").read()	#打开图片
print("读取中...")
print("CRC校验位[29-33]:",crcbp[29:33].hex())
crc32frombp = int(crcbp[29:33].hex(),16)        #读取图片中的CRC校验值
#print("图片中的CRC校验值:",crc32frombp)

for i in range(4000):
    for j in range(4000):
        data = crcbp[12:16] + struct.pack('>i',i) + struct.pack('>i',j) + crcbp[24:29]
        crc32 = binascii.crc32(data) & 0xffffffff
        #计算当图片大小为i:j时的CRC校验值,与图片中的CRC比较,当相同,则图片大小已经确定
        if(crc32 == crc32frombp):
            print("图片大小为:",i,j)
            print("宽度[16-19]:",hex(i),"\t高度[20-23]:",hex(j))
            break

在这里插入图片描述
将图片的高度修改为0x0514
XCTF-Misc1 a_good_idea Ditf_第9张图片
修改高度后,图片下方出现一串字符:
XCTF-Misc1 a_good_idea Ditf_第10张图片

但是这个字符串有什么用呢,不知道,再找找还有没什么信息

2.文件分离

复制到kali里面,binwalk查看一下是否有隐藏文件
XCTF-Misc1 a_good_idea Ditf_第11张图片
foremost分离出一张图片和一个rar压缩包
XCTF-Misc1 a_good_idea Ditf_第12张图片使用前面的字符串StRe1izia解压缩,得到流量文件。

3.流量分析

自己试了一些过滤方式,没有找到关键信息。搜了一下,提示为png关键词,OK好吧,
过滤器:http contains png
XCTF-Misc1 a_good_idea Ditf_第13张图片发现请求了一张kiss.png,追踪HTTP流,里面有一串加密字符:
XCTF-Misc1 a_good_idea Ditf_第14张图片

4.解密字符串

对这个字符串ZmxhZ3tPel80bmRfSGlyMF9sb3YzX0ZvcjN2ZXJ9,进行base64解密
XCTF-Misc1 a_good_idea Ditf_第15张图片得到flag{Oz_4nd_Hir0_lov3_For3ver}

你可能感兴趣的:(CTF练习记录,网络安全,ctf)