码迷,mamicode.com
首页 > 其他好文 > 详细

Bugku-MISC-奇怪的png图片

时间:2021-01-16 12:08:04      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:port   宽度   editor   打开图片   loading   write   tps   only   pack   

打开图片发现确实挺奇怪的

先binwalk分析一下

技术图片

除了一个png,还有一个zip文件里面有4个txt。

用foremost分离出来。

zip有密码。

根据提示CRC32,用winrar打开

技术图片

 

pass1.txt, pass2.txt, pass3.txt, 图片真实CRC32.txt大小都很小,可以利用CRC32爆破出文本信息。

 

CRC32爆破脚本:https://github.com/theonlypwner/crc32

使用方法:

python crc32.py reverse 你的crc32密文

技术图片

 

因为pass1.txt文件大小为4,所以信息为{0x41, 0x77, 0x73, 0x64},转成ascii码,Awsd。

 

 技术图片

pass2.txt文件大小为4,所以信息为{0x32, 0x30, 0x32, 0x31},转成ascii码,2021。

技术图片

pass3.txt文件大小为4,所以信息为{0x6d, 0x7a, 0x79, 0x30},转成ascii码,mzy0。

技术图片

 

 

 图片真实CRC32.txt文件大小为6,所以信息不确定。根据文件名字的提示,且文件大小只有6,CRC32有八位,所以应该是图片的CRC32和这个文件的CRC32相同,为0x59f1d4be.

 

用010editor后者winhex打开图片,修改CRC32

 技术图片

 

 

 

如果安装了相应模板(Template),按F5就可以运行

技术图片

 

发现提示CRC32不匹配,那就应该是图片的高度和宽度不对。

 

用脚本计算一下png图片的真实高度和宽度。

import binascii
import struct
import sys

file = input("图片地址:")
fr = open(file,rb).read()
data = bytearray(fr[0x0c:0x1d])
crc32key = eval(0x+str(binascii.b2a_hex(fr[0x1d:0x21]))[2:-1])
#原来的代码: crc32key = eval(str(fr[29:33]).replace(‘\\x‘,‘‘).replace("b‘",‘0x‘).replace("‘",‘‘))
n = 4095
for w in range(n):
    width = bytearray(struct.pack(>i, w))
    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 = binascii.crc32(data) & 0xffffffff
        if crc32result == crc32key:
            print(width,height)
            newpic = bytearray(fr)
            for x in range(4):
                newpic[x+16] = width[x]
                newpic[x+20] = height[x]
            fw = open(file+.png,wb)
            fw.write(newpic)
            fw.close
            sys.exit()

技术图片

 

修改图片的高度和宽度

技术图片

 

 

 

得到正常的图片

技术图片

 

 

 

 扫码得到:pass4为crc32爆破出90开头那一个

根据之前爆破的结果,pass4为9070yo。

将pass1, pass2, pass3, pass4拼凑起来:Awsd2021mzy09070yo

 

 

 

flag应该在flag.txt中,所以这应该就是zip的解压密码。

解压后打开flag.txt得到flag

flag{Pn9_Crc32_b2ut3_f0rce}

 

Bugku-MISC-奇怪的png图片

标签:port   宽度   editor   打开图片   loading   write   tps   only   pack   

原文地址:https://www.cnblogs.com/fallingskies/p/14284582.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!