欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

CTF-隐写术(十)

程序员文章站 2022-05-15 14:29:20
...

声明:以下CTF题均来自网上收集,在这里主要是给新手们涨涨见识,仅供参考而已。需要题目数据包的请私信或在下方留言。

                               19.我就是flag(来源:实验吧)

1.关卡描述


CTF-隐写术(十)

2.解题步骤


分析:

CTF-隐写术(十)

迅雷下载:

或者python脚本下载:

import requests
import io,sys
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf-8') #控制输出的编码,可以不要
response = requests.get('http://ctf5.shiyanbar.com/stega/IHDR.png')

cat_img = str(response.text).encode('utf-8')
#出现bytes错误,TypeError: a bytes-like object is required, not 'str'
#str通过encode()方法可以编码为指定的bytes
print(cat_img)

with open('ihdr1.png','wb') as f:
    f.write(cat_img)
    f.close()

考察CRC校验

下载png文件后,发现打不开,但是看得到文件的缩略图,这时候很大可能就是文件中哪里校验出错。
----
png格式主要由六大块组成:文件头、IHDR块、PLTE块、tRNS块、IDAT块、文件尾
文件头一般是 8950 4E47 0D0A 1A0A
而本题提示中的IHDR块是png中用来描述图片的基本信息,格式是4字节Chunk_Length、4字节Chunk_Type、13字节Chunk_Data、4字节Chunk_CRC

Chunk_Length:内容一般是13,决定了Chunk_Data的大小
Chunk_Type:内容为49484452,代表"IHDR"
Chunk_Data:4字节Width,4字节Hegiht,1字节BitDepth,1字节ColorType,1字节CompressionMethod,1字节FilterMethod,1字节InterlaceMethod
Chunk_CRC:把Chunk_Type和Chunk_Data合起来进行CRC校验
----

CTF-隐写术(十)

这里如果你有pngcheck这个软件,你用一下就会发现里面CRC校验错误

c:\pcat\pngcheck>pngcheck.exe IHDR.png

IHDR.png  CRC error in chunk IHDR (computed b0a7a9f1, expected fe1a5ab6)

ERROR: IHDR.png

如果没有,大致也可以猜到是CRC校验,本图的Chunk_Length和Chunk_Type都没问题,而CRC是由Type+Data合起来进入CRC运算得到的,自己编程计算出新的CRC值,然后用Winhex修改Chunk_CRC即可打开图片。(如果本题是Data出了问题,那么只能是通过暴力**得到正确的Data)

# -*- coding:utf-8 -*-
import binascii

def crc32(v):
	return '%x' % (binascii.crc32(v) & 0xffffffff) 

def foo():
	chunk_type="49484452"
	chunk_data="0000029C 000001DD 08 06 00 00 00"
	chunk_crc="FE1A5AB6"
	print "Old:",chunk_crc
	chunk_crc=(chunk_type+chunk_data).replace(' ','').decode('hex')
	print "New:",crc32(chunk_crc).upper()
	pass

if __name__ == '__main__':
	foo()
	print 'ok'

打开图片后,里面写着"Where Is The Key?",这里不用慌,如果以前有做过同个出题人出的那题"Only one file"(在"安全杂项")里,就很清楚该出题人一般是用Adobe Fireworks CS5来隐藏图层(想了解更多的可以参看我那题的wp),所以只要下载个Adobe Fireworks CS5打开这图片,在"背景"那里就可以看到了。

CTF-隐写术(十)

CTF-隐写术(十)

B0A7A9F1

CTF-隐写术(十)

修改后保存用Adobe Fireworks CS5打开:

CTF-隐写术(十)

CTF{PNG_IHDR_CRC}

注:如果没有Adobe Fireworks CS5可以修改图像高度即Chunk_Data:4字节Hegiht

CTF-隐写术(十)

修改为00 00 02 DD

CTF-隐写术(十)

 

                                    20.BrainFuck(来源:实验吧)

1.关卡描述


CTF-隐写术(十)

2.解题步骤


分析:

下来是一张图片,放到虚拟机里binwalk好像并没有什么东西,用winhex等工具打开也没有发现什么

再回到题目名称 BrainFuck 这个时候就要想到我们的bftools工具了

CTF-隐写术(十)

把下下来的图片放到bftools工具目录下,在当前目录进入cmd,键入如下命令

CTF-隐写术(十)

bftools.exe decode braincopter doge.png --output --dogeout.jpg

bftools.exe run --dogeout.jpg

Q1RGe0JyYWluZnVja18xc19TaW1wMWV9

即可以得到一串base64

CTF-隐写术(十)

CTF{Brainfuck_1s_Simp1e}

或者:

CTF-隐写术(十)

行吧,接下来就是你们想要问的bftools的下载链接咯~

下载链接:https:pan.baidu.com/s/1Mo0FS_DVVXbcOgUtEQfclg   密码:i6xb

 

相关标签: CTF-隐写术