2020黑盾杯部分MISC

Misc-encrypt

压缩包里有flag.txt文件,我的banzip软件直接破了伪加密

flag.txt文件内容为UTAxSlUwTkRWRVo3Um1GclpWOWxibU55ZVhCMGFXOXVmUT09

用base64解密,得到Q01JU0NDVEZ7RmFrZV9lbmNyeXB0aW9ufQ==

明显结尾有=,再一次用base64解密,得到flag:CMISCCTF{Fake_encryption}

Misc-Burps

打开压缩包,有1.txt~6.txt以及flag.txt,且1~6文件的大小比较小,应该用crc32碰撞

照常用crc32碰撞脚本,每次运行脚本会得到4个字节的数据

python crc32.py reverse 0x6083a1c8
image-20211126105725499

将得到的4块十六进制的数据,提取出来,得到7468655f

将其转换成ASCII码,得到the_

其后的5个文件都如此,提取4块十六进制数据并转ASCII码

最终得到解压密码the_password_here_cipher

打开flag.txt,得到flag:CMISCCTF{how_to_burp_by_coding}

Misc-blind

打开压缩包有blind.pngenc.rar,其中enc.rar有密码

image-20211126112342821

所以考虑从图片入手,且题目也提示盲水印

拉进kali进行binwalk分析

image-20211126112606709

发现有两张图片,分离,得到两张一模一样的图片

用普通的盲水印脚本解析,发现得到的图片啥也没有,宽高也没被修改

image-20211126112929662

于是考虑用频域盲水印进行解析

python2 BlindWaterMarkplus.py --original 1.png --image 2.png --result res.png

得到一张有点模糊的解压密码照片,获得解压密码Q@CTF@NX

具体内容可参考ctf misc 图片题知识点volcano的博客-CSDN博客ctf misc 图片

image-20211126113326656

解压压缩包,得到一张图片

image-20211126113754151

照常拉进kali进行分析,发现有两个zlib,说明有两张png图片结尾,第二张照片数据损坏了或被删去文件头了

有两种方法分离

第一种:用zsteg工具分析,可以发现有异常块,为image

image-20211126162425213

然后进行提取

zsteg -E "extradata:0" ctfer.png > 1.jpg 

第二种:在010editor搜索49 48 44 52十六进制字节可以找到IHDR块

image-20211126162625768

然后标记为开始,拉到最后标记为结束,保存选择,改后缀为png,即可得到缺失文件头的图片

得到图片后,拉进010editor,插入12个0数值

修改文件头为89 50 4E 47 0D 0A 1A 0A 00 00 00 0D

image-20211126162824500
image-20211126163050721

最终得到flag的图片,flag为CMISCCTF{double_picture}

image-20211126163155903

Misc-Trees

压缩包里有张图片,解压得到

image-20211126204452926

题目提示是LSB,不会,放脚本

from PIL import Image

img = Image.open('enc.png')
w = img.width
h = img.height
img_obj = Image.new("RGB",(w//16,h//16))

for x in range(w//16):
   for y in range(h//16):
      (r,g,b)=img.getpixel((x*16,y*16))
       img_obj.putpixel((x,y),(r,g,b))

img_obj.save('ok.png')
image-20211126204542783

得到flag:CMISCCTF{coconut_tree}

看wp说有非预期解,用stegsolve调颜色通道调偏移量什么的可以得到模糊的字符

Misc-music

打开压缩包里有一个_MACOSX文件夹music.wav文件,被那个文件夹骗了,以为有啥提示

后来得知是在mac电脑上压缩生成的

image-20211126205308883

audacity打开,看波形图有一高一低

估计是高的波形转成1,低的转成0

image-20211126205335048

摆上大佬的脚本

import numpy as np
import struct
import wave
import re


def write_records(records, format, f):
   #Write a sequence of tuples to a binary file of structures.
   record_struct = Struct(format)
   for r in records:
       f.write(record_struct.pack(*r))

path = "./music.wav"
f = wave.open(path, "rb")
# 读取格式信息
# (nchannels, sampwidth, framerate, nframes, comptype, compname)
params = f.getparams()
nchannels, sampwidth, framerate, nframes = params[:4]
# 读取波形数据
str_data = f.readframes(nframes)
f.close()
#将波形数据转换为数组
wave_data = np.fromstring(str_data, dtype=np.short)
b = ''
# arr = [elem for elem in wave_data if elem >0]
max = 0
d = ''
for i in wave_data:
   if i <0:
       if max !=0:
           if max<25000:
               d +='0'
           else:
               d += '1'
               pass
       max = 0
   if max < i:
       max = i

print(d)
print("\n\n\n\n")
a = re.findall(r'.{8}',d)
hex_list=[]
for i in a:
   res = hex(int(i,2))
   hex_list.append(res)
print(hex_list)

with open("result.txt","wb") as f:
   for x in hex_list:
       s = struct.pack('B',int(x,16))
       f.write(s)

看到运行解压后的前四个字符是52 61 72 21,是rar压缩包的文件头,改后缀名为rar

image-20211126205556499

打开压缩包,提示没有flag

image-20211126205643582

题目提示NTFS数据流,用winrar解压,用NtfsStreamsEditor2扫描解压后的文件夹,扫描得到png图片

image-20211126205846764

打开图片,是一个残缺的二维码,猜测是修改了宽高,脚本计算CRC32并修复

最终扫描得到flag:flag{4dcfda814ec9fd4761c1139fee3f65eb}

image-20211126210145029
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇