实验吧隐写术WirteUp(全解)

版权声明:我的Github博客:https://wintrysec.github.io https://blog.csdn.net/qq_35553433/article/details/86582661

1.欢迎来到地狱

解压得到三个文件,其中word文档和压缩文件是加密的

直接打开图片

提示不支持此格式,猜测应该是头文件损坏,用WinHex打开修复头文件:

JPEG文件的前12个字节是:FF D8 FF E0 00 10 4A 46 49 46 00 01 (JPEG文件格式详解)

修复后打开有一个网盘地址,下载下来一个 “地狱之声.wav”

没有其他密码不是MP3stego隐写,所以用Audacity打开,转换为频谱图,看到了摩斯电码

得到摩斯电码 (-.- . -.-- .-.. . - ..- ... --. ---),去解密:用"/"反斜杠代替空格空字符

用密码letusgo打开word文档,经典的word隐写,选项->视图->勾选隐藏文字。

得到一个密码image steganography,用这个密码去打开压缩包,结果试了好几次不对

百度之,是个图片隐写工具(在线地址),把word里的哈士奇图片另存出来,解密

用密码you are in finally hell now解压缩包,有一个图片和一个txt文档里边有一堆二进制数

八位一组隔开,二进制转ASCII,得到一个字符串ruokouling应该是密码

那么图片可能是个图种,里边有压缩包,binwalk+foremost搞一下

用上边得到的字符串去解密压缩包,失败,仔细一读拼音是"弱口令",爆破

得到密码Password

打开压缩包中的文本文档

根据内容猜测是base64编码和Rabbit(兔子)密码、凯撒密码

先base64解码,得到一个兔子密码,和base64编码很像

(U2FsdGVkX19pDorZ2hTP+5w0zSA9bXhVezJy2umFTSp6PdN6zPKCMA==)

然后Rabbit解密,得到 fxbqrwrvnwmngrjxsrnsrnhx

凯撒密码解密 :得到flag{woshinimendexiaojiejieyo}

2.九连环

下载到一个jpg图片,binwalk分析一下

发现里面包含两个zip文件,一个套一个

直接binwalk -e 分解出来,得到一个4C68.zip,里边有个asd文件夹

(tips:如果binwalk分离出的图片总是0字节,请下载最新版,Github地址)

文件夹里还有俩文件:

其中qwe.zip里有个flag.txt,应该是最后的flag,但是加密了

把asd文件夹拖出来,提示加密了

不会吧,这样就没法解了啊,我刚才都进去文件夹了啊

猜测是zip伪加密(关于zip伪加密),WinHex查看修改全局标志位,一顿操作后~

解压提示压缩文件已损坏,应该是改多了把压缩文件损坏了,但是没关系,因为我们已经得到了里边的图片

从之前没损坏的4C68.zip里边可以把qwe.zip拖出来

那么现在我们又两个文件

1.一个包含flag的加密的qwe.zip压缩包

2.一张jpg图片

这里考察的是对常见隐写工具的应用,相关内容点击这

steghide extract -sf good.jpg #解密出来,得到一个ko.txt文本

打开查看得到压缩包密码

用这个密码打开压缩包里的flag.txt

3.FIVE1

下载图片binwalk分析发现包含一个zip

binwalk -e 分离出来

压缩包有密码,文件名(1111110000000000)是压缩包的二进制密码,转换成16进制,得到压缩包密码FC00

解开压缩包得到一张JPEG图片,strings 分析发现一串base64字符串

base64解密

是一串摩斯电码,接着解密摩斯电码,得到一串MD5加密的字符串:7a57a5a743894a0e

解密MD5得到最终flag

4.stegas 300

binwalk 分析没结果

MP3Stego解密同样无果,题目没给出其它文件和密码只能不带密码解密

拉进Audacity

看上去是二进制波形隐写,查资料得知

这样的表示0

这样的表示1

得到二进制数字:01100010 01100001 01101011 01100100 01101111 01110010

八位一组隔开,二进制转ASCII,得到flag(MD5加密后为最后flag)

5.Chromatophoria

用binwalk和WinHex等工具查看一下没什么结果

用StegSlove查看,最低为三个色道有信息,看一下数据,得到flag(这是一道LSB隐写)

6.Black Hole

下载得到一个*.img镜像文件,binwalk分析发现里边有图像

binwalk -e分离出一个masked_key.png图像

用WINHEX打开,前8字节与正常的PNG文件头进行异或

Masked: 7688 B1A7 0D1A 504C 
PNG: 8950 4E47 0D0A 1A0A 
XOR: FFD8 FFE0 0010 4A46
结果在文件末尾发现该串

使用前64字节对文件进行循环异或加密

mask_in = open('masked_key.png','rb')

key = bytearray(mask_in.read(983040-64))     # 读取除文件头64字节外的所有字节

mask= bytearray(mask_in.read(64))     # 以头64字节作为异或密钥

for x in range(983040-64):

    key[x] ^= mask[x%64]

key_out = open('unmasked_key.png','wb')

key_out.write(key) key_out.close()

7.心中无码

这题重点考察图像处理,实验吧评论处有人给出了python2.x版本的代码

#coding:utf-8 
from PIL import Image 
lena = Image.open('Lena.png')
b0 = '' #将像素点弄为0,1代码 
bnum = 0 
width,height = lena.size 
for x in xrange(width): 
	for y in xrange(height): 
		if lena.getpixel((x,y)) != (255,255,0) : #要求不是黄色(即题目说的心中无码的意思) 
			if (lena.getpixel((x,y))[2] & 0x01) : 
				b0 += '\x00\x00\x00' 
			else: 
				b0 += '\xff\xff\xff' 
bnum += 1 
im = Image.frombuffer('RGB', (300,300),b0) 
im.save('1.png')

生成一个二维码图片,去在线解密二维码

解密得到一串Brainfuck-> 解密 ->Base64->解密->flag

8.刷新刷新快刷新

下载得到一张 123456.jpg 图片,题目为刷新 刷新 再刷新~~多么明显的提示啊
 

git clone https://github.com/matthewgao/F5-steganography

cd F5-steganography

java Extract 123456.jpg -p 123456

得到output.txt,打开里边就是flag

9.流

网上有wp说扔进WinHex找flag,我这不知为何打不开虚拟镜像

直接用

strings liu.vmdk | grep CTF

得到flag

10.我就是flag

用python脚本补全bmp头部

python2.x

# -*- coding:utf-8 -*-
# author:pcat
# http://pcat.cnblogs.com

from Crypto.Cipher import AES

def getBMPheader():
	#bmp是LITTLE-ENDIAN(小字节序、低字节序)
	bfType='424d' #文件类型
	bfSize='360c 3000' #文件大小,本题3148800+54
	bfReserved1='0000' #保留,为0
	bfReserved2='0000' #保留,为0
	bfOffBits='3600 0000' #数据离文件头偏离量
	biSize='2800 0000' #位图信息头的大小
	biWidth='5605 0000' #宽度,本题1366
	biHeight='0003 0000' #高度,本题768
	biPlanes='0100' #颜色平面数,为1
	biBitCount='1800' #比特数/像素,本题24位
	biCompression='0000 0000' #压缩类型,0为不压缩
	biSizeImage='0000 0000' #图像的大小,本题多少无所谓
	biXPelsPerMeter='0000 0000' #水平分辨率,缺省
	biYPelsPerMeter='0000 0000' #垂直分辨率,缺省
	biClrUsed='0000 0000' #使用的颜色索引数,本题多少无所谓
	biClrImportant='0000 0000' #重要的颜色索引数,本题多少无所谓
	bmp_header=bfType+bfSize+bfReserved1+bfReserved2+bfOffBits
	bmp_header+=biSize+biWidth+biHeight+biPlanes+biBitCount+biCompression+biSizeImage
	bmp_header+=biXPelsPerMeter+biYPelsPerMeter+biClrUsed+biClrImportant
	bmp_header=bmp_header.replace(' ','')
	return bmp_header

def foo():
	ciphertext=open('bestwing12345678.bmp','rb').read() #记得有'b'
	key='bestwing12345678'
	obj=AES.new(key,AES.MODE_ECB)
	message=obj.decrypt(ciphertext)
	fsave=open('out.bmp','wb') #记得有'b'
	fsave.write(getBMPheader().decode('hex')+message)
	fsave.close()
	pass

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

python3.x

import pyaes


def generate_bmp():
    bmp_header = b'\x42\x4d\x36\x0c\x30\x00\x00\x00\x00\x00' \
                 b'\x36\x00\x00\x00\x28\x00\x00\x00\x56\x05\x00' \
                 b'\x00\x00\x03\x00\x00\x01\x00\x18\x00\x00\x00' \
                 b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' \
                 b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'

    key = b'bestwing12345678'
    new_bmp = b''
    with open('bestwing12345678.bmp', mode='rb')as f:
        byte_content = f.read()
        aes = pyaes.AESModeOfOperationECB(key)

        for i in range(0, len(byte_content), 16):
            byte16 = byte_content[i: i + 16]
            decrypt_byte = aes.decrypt(byte16)
            new_bmp += decrypt_byte
    with open('bmp.bmp', mode='wb')as f1:
        f1.write(bmp_header + new_bmp)


if __name__ == '__main__':
    generate_bmp()

11.guess

根据题目和提示可知用outguess,没有密码直接解密

outguess -r angrybird.jpg 666.txt

得到flag

12.黑与白(二)

下载图像,扫二维码得到提示:我不会拼音

不会拼音,那就是五笔了,查询"我不会拼音"的五笔字根表:

根据经验这个文件名肯定是提示,反过来就是Image Steganography

下载这个工具解密,密码为上边解密得到的:trntgiiwfcuruahujf

最后得到flag

13.小苹果

下载图像,binwalk分析发现有压缩包

foremost分离,解压出来是一个mp3文件

用MP3Stego不带密码解密

Decode.exe -X apple.mp3

结果失败,应该是有密码的

返回查看那张图片,仔细一看是个二维码,解码得到密码:\u7f8a\u7531\u5927\u4e95\u592b\u5927\u4eba\u738b\u4e2d\u5de5

得到一串当铺密码,去解密,密码为:9158753624

Decode.exe -X -P 9158753624 apple.mp3

得到一串Base64编码:Q1RGe3hpYW9fcGluZ19ndW99,解密得到flag

14.Fonts

下载一个doc文件,直接猜到是word doc隐写,打开->显示隐藏字符,得到字符串

15.男神一般都很低调很低调的!!

解压压缩包得到两张一样的图片

直接用Stegsolve的Image Combiner功能得到一张反色的二维码

保存出来,然后把保存出来的二维码再放进Stegsolve,查看各个色道

得到三个二维码,解密出以下信息:

DES
6XaMMbM7
U2FsdGVkX18IBEATgMBe8NqjIqp65CxRjjMxXIIUxIjBnAODJQRkSLQ/+lHBsjpv1BwwEawMo1c=

应该是加密方式,密钥和密文

解密DES,得到flag

16.黑与白

打开图片是个二维码,解码,一串字符串:HttP://pcat.cnbloGs.cOM?Hh

是pcat大佬的博客,去掉特殊字符:HttPpcatcnbloGscOMHh,大小写应该是培根密码

解密,(大写为B,小写为A)

HttPp→ BAABA→t

catcn→AAAAA→a

bloGs→AAABA→c

cOMHh→ABBBA→p

得到密码:tacp

jphs->seek解密

17.so beautiful so white

用Stegsolve打开图片得到压缩包的密码

解压出一个gif文件,无法打开,用WinHex补全文件头

打开得到flag

18.水果

Stegsolve打开,有个二维码,解密得到一串ASCII字符串

解密是一串摩斯电码

然后再解密

19.最低位的亲吻

最低位!!!,一看就知道是LSB隐写。

这里有LSB隐写的总结和这道题的WP:链接

20.无处不在的广告

stegsolve反色,然后扫描二维码

21.想看正面?那就要看仔细了!

考察图像元信息

保存图片文件右键查看属性-详细信息,可以得到key

再进行base64解码即可

22.打不开的文件

下载gif图像,补全文件头,打开得到一个key,Base64解码得到flag

23.py的交易

下载png图像,使用PNG图片分析工具tweakpng打开

通过工具发现pHYs字段CRC校验值不正确。

整体查看字段发现有Adobe专属的数据块mKBT等

且查看iTXt字段发现是使用Adobe Fireworks CS5 11.0.0.484 Windows创建的。

使用Adobe Fireworks打开图片,发现存在两个图层,另一个图层为二维码。

扫描二维码,得到一串十六进制。

将十六进制导入十六进制编辑器,查看文件头,确认为pyc类型文件。

使用pyc反编译工具,得到源代码

查看源代码,根据题目和tEXt字段,猜测key=py,成功获取Flag

24.复杂的QR_code

爆破

25.认真你就输了

看文件头有PK,这是zip格式的头文件标志

将文件拓展名改为zip,打开找到flag

26.IHDR

Winhex修改图片高度即可

27.BrainFuck

使用工具braintools:

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

这样就可以得到一串字符,base64编码的,解码一下就可以得到flag

28.Rose

http://hebin.me/2017/09/10/%e8%a5%bf%e6%99%aectf-rose/

29.beyond

http://hebin.me/2017/09/10/%e8%a5%bf%e6%99%aectf-beyond/

30.LSB

隐写wbStego的使用,支持BMP文件隐写

http://hebin.me/2017/09/10/%e8%a5%bf%e6%99%aectf-lsb/

31.女神又和大家见面了

binwalk

MP3Stego

32.SB!SB!SB!

stegslove打开,扫描二维码

33.当眼花的时候,会显示两张图

binwalk -e 分离出两张图

stegsolve,把两个图sub一下,保存出来

再用stegsolve打开查看各个颜色通道,发现异常

。。。。

34.听会歌吧

更像是web题~~

base64编码download.php放到url参数

将hereiskey.php进行base64编码后放入url提交,得到key

没有更多推荐了,返回首页