CTF-隐写术(十)

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

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

1.关卡描述


2.解题步骤


分析:

迅雷下载:

或者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校验
----

这里如果你有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打开这图片,在"背景"那里就可以看到了。

B0A7A9F1

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

CTF{PNG_IHDR_CRC}

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

修改为00 00 02 DD

 

                                    20.BrainFuck(来源:实验吧)

1.关卡描述


2.解题步骤


分析:

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

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

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

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

bftools.exe run --dogeout.jpg

Q1RGe0JyYWluZnVja18xc19TaW1wMWV9

即可以得到一串base64

CTF{Brainfuck_1s_Simp1e}

或者:

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

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

 

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值