2021深育杯MISC

Login

(这题真就差一点,一点,就做出来了)

打开页面需要登录,无账号密码,唯一可疑的只有底下的获取实例,点击发现可以获取一个提示文档,并说按照文档向admin@birkenwald.cn发送邮件即可获取账号。

提示文档是个zip压缩包,里面还有一个加密的压缩包,看到三个文件都被加密了,尝试用伪加密工具破解一下

image-20211115222035349

解完后发现示例-副本可以打开,其他打不开

同时看到示例与示例的CRC32是相同的,大小也一样,所以尝试明文攻击

image-20211115222709640

得到密码qwe@123,解压出password.zip,但打开还是加密的,密码也不一样

image-20211115222810254

发现1.txt~2.txt的大小一样,都是6字节,于是想到CRC32碰撞

到这里就与官方wp有区别,脚本工具什么的

首先我用的脚本是三个文件一起爆破,速度很慢且结果只出来一个,常规来说CRC相同但里面内容有很多种

这里就导致最后没做出来

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import datetime
import binascii


def crack(crc_in):
   crcs = set([crc_in])

   r = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_1234567890~!@#$%^&*'  # 压缩字符串
   for a in r:
       for b in r:
           for c in r:
               for d in r:
                   for e in r:
                       for f in r:
                           txt = a + b + c + d + e + f
                           crc = binascii.crc32(txt)
                           if (crc & 0xFFFFFFFF) in crcs:
                               return txt





if __name__ == "__main__":
   s = [0x1028C889,0x4B8F7BE7,0x21137233]
   password = ''
   for x in s:
       passw = crack(x)
       password += str(passw)
       print password

这个是爆破三个crc32的脚本

image-20211115223513471

最后爆出来这个结果,当时发现最后一段很奇怪,即3.txt爆出来的内容

最后就卡在这里了,解压密码不正确也不会做


复盘:

当时在GitHub上也下载了crc32碰撞工具

image-20211115223720884

但有一个点我做错了,就是命令输入crc32时没有加上0x

image-20211115223915733

并且速度也是秒出的,不会像上面那个脚本爆破快四十分钟

很绝望就差这一步,前两个都爆破出来了

剩下的1.txt和2.txt也如图所示输入

python crc32.py reverse 0x21137233

最后筛选出得到密码welc0me_sangforctf,解压得到.password.swp文件

所知swp文件时vim编辑器不正常退出留下的

拉进kali进行读取

vim -r .password.swp
cat .password.swp
image-20211115224419284

然后登录网站用bp抓包查看回显包就得到flag

Bridge

下载来是一张png图片

照常拉进kali进行binwalk分析,无果,进行zsteg查看

image-20211119082718554

发现有zlib数据,以及在bgr通道有脏数据

在kali里进行pngcheck也证明有异常IDAT块

image-20211119083027653

在010editor里查看异常IDAT块

将87改成78,并从78段开始提取为十六进制(78 9C是zlib的文件头)

image-20211119083747403
image-20211119083620093

用脚本将这段zlib数据压缩

import zlib
data = open("zlib_hex_data.txt", 'r',
           encoding="utf-8").read().replace(" ", "").replace("\n",
"").strip()
data_dec = zlib.decompress(bytes.fromhex(data))
print(data_dec[:100])
with open("zlib_data.rar", 'wb') as wf:
   wf.write(data_dec)
image-20211119083955851

发现生成rar压缩包,打开压缩包提示寻找flag1

image-20211119084215744

继续对bridge图片进行分析

在对bridge图片进行exif信息查询时发现一串字符

image-20211119084419922

进行十六进制转ASCII码

image-20211119084559813

得到dynamical-geometry

在前面zsteg发现的脏数据还没利用,用stegsolve工具查看

(在前面zsteg找到的脏数据是在BGR通道,当时在比赛时就是因为没有调到BGR所以没发现这段数据)

image-20211119085023095
image-20211119084817962

保存为png图片,发现打不开,在kali里进行foremost分离出png图片,得到一段色彩值混乱的图片,进行分析像素

from PIL import Image
image = Image.open(r'C:\Users\Aria\Desktop\ctf赛题\深育杯\00000000.png')
allpixels = []
for x in range(image.width):
   for y in range(image.height):
           allpixels.append(image.getpixel((x, y)))
print(len(allpixels))
print(allpixels[:4])

得到输出,取了前四段值,将第三列十六进制转十进制得到50 4B 03 04,为zip压缩文件头

348100
[(40, 176, 80), (37, 181, 75), (1, 253, 3), (2, 252, 4)]
          0x50         0x4B         0X03       0X04

批量提取并保存为zip压缩包

from PIL import Image
image = Image.open(r'C:\Users\Aria\Desktop\ctf赛题\深育杯\00000000.png')
allpixels = []
for x in range(image.width):
   for y in range(image.height):
       if image.getpixel((x, y)) == (0, 0, 0):
           continue
       allpixels.append(image.getpixel((x, y))[2])
hex_datalist = [str(hex(i))[2:].zfill(2) for i in allpixels]
print("".join(hex_datalist)[:100])
with open("outpur.txt", 'w') as wf:
   wf.write("".join(hex_datalist))

将生成的txt文件里的内容用010editor粘贴生成zip,用前面转成ASCII码的字符dynamical-geometry作为解压密码

image-20211119091702750

百度搜索得知stl文件是3D文件,在微软商店搜索到3D软件读取器3D Builder可以直接打开(自带的3D画图打不开)

image-20211119092921649

同理得到之前压缩包的flag2也是stl文件格式,打开得到第二段flag

转:2021深育杯线上初赛官方WriteUp (qq.com)

暂无评论

发送评论 编辑评论


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