ByteCTF 2020 Misc WriteUp

WriteUp Oct 26, 2020

Hardcore Watermark 01

首先用谷歌搜图找到原图
接下来使用 stegsolve 里的 image combiner 进行 sub 运算
再反色一下得到:

re

可以看出来黑色部分是 41x41 大小的二维码的上面三分之一
但除了黑色以外还有很多颜色

其中绿色和红色组合起来是下面三分之一
这里不经意发现 stegsolve 里的 random color map 可以看的很清楚,得到:

random

然后其中蓝色的部分是中间的三分之一
吸一下颜色可以发现这个蓝色像素点的绿色通道和蓝色通道数值都大于 240
使用 python 脚本:

from PIL import Image

im = Image.open('sub.bmp')
width = im.size[0]
height = im.size[1]
p = Image.new("RGB", (width, height), (255, 255, 255))

for h in range(height):
    for w in range(width):
        pixel = im.getpixel((w, h))
        if pixel[1] > 240 and pixel[2] > 240:
            p.putpixel((w, h), pixel)

p.save('a.png')

就可以把蓝色提取出来:

blue

接下来就用 QrazyBox 手动点二维码:

qr

flag

解出 flag:ByteCTF{ByteCTF-2020 FLAG!GALF 0202-FTCetyB10001000}

Hardcore Watermark 02

看一下所给图片的蓝色通道
在图片上面可以看见很多个小方块:

allwithwatermark

看了一下发现每个方块都是 50x50 的,一共有 180 个
然后在谷歌找到原图
把原图和所给图片的上面这部分给切下来

原图:

origin

所给图片:

withwatermark

打开 ps,把两张图片作为两个图层放在一起,其中原图在上面
再把原图的图层类型设置为差值,并且只打开蓝色通道
可以看到 180 个小块上面的水印:

watermark

其中有的块上的水印是左右方向,有的是上下方向
左右:

leftandright

上下:

upanddown

因为一共有 180 个,且水印方向只有两种,所以猜测是二进制
以上下为 0,左右为 1
手动提取出:

010000100111100101110100011001010100001101010100010001100111101101100010011101110110110101010100011001010110000101101101001000010111110100100000001000000010000000100000001000000100

转成 16 进制再转成 ASCII 码
得到 flag:ByteCTF{bwmTeam!}

girl_gift

附件是 script 命令生成的文件,其中 1 是时间文件,2 是会话文件
使用 scriptreplay 命令可以进行重放

scriptreplay -t 1 -s 2

在其中可以看到 4 个部分的 flag 和 hint:~3~D~
搜索一下发现 4 个部分的 flag 是由 aa3d 生成的立体图
立体图可以通过两个相同的图片偏移取差值的方法看到信息
其实和 stegsolve 里的 stereogram solver 的方法相同
但这里使用了 ps 进行偏移取差值

截一下打印 flag 时的屏,使用 ps:

part1
part2
part3
part4

提取出:

427974654354467B5468335F67495231465231334E445F31355F345F4C49457D

转成 ASCII 码,得到 flag:ByteCTF{Th3_gIR1FR13ND_15_4_LIE}

PT Site

进到网页是登录、注册等
但想要注册需要邀请码
这里点击注册,然后输入员工号 888888,得到一个加密 zip 压缩包
根据帮助文档中的信息构造明文(使用 UTF-8 编码):

亲爱的员工 888888,您自助申请的 PT 邀请服务已受理完成,邀请链接在附件压缩包中,欢迎下次使用。

使用 rbkcrak 进行明文攻击:

./rbkcrack.exe -C crack.zip -c receipt.txt -P 1.zip -p 1.txt

爆破出三个密钥,再利用 AAPR,解出压缩包
根据邀请码进行注册

在论坛区可以区可以看到明显的 Secret 字样,但只有管理员才能看
于是跟据规则,在种子区下的评论区使用 Burp Suite 的 Intruder 模块疯狂评论
得到 8000 魔力值后买到 VIP,得到 flag 的后半部分:

flag2

然后看一下种子区,下载好种子,发现种子只能下载一个 nfo 文件和部分损坏的 mp4 文件
那看种子区的页面:

description

可以看到视频的名字和来自网盘的字样
这里根据百度网盘秒传的原理,可以在 百度网盘秒传链接转存 里输入文件的名称、md5 值、前 256kb 的 md5 值、文件大小等属性把文件下载下来

文件名称在页面上已经给出
根据 nfo 文件可以得到原 mp4 文件的 md5 值
根据部分损坏的 mp4 文件可以得到前 256kb 的 md5 值和文件的长度

随后就成功把文件下载下来
在视频里找到前半部分 flag
连在一起,得到 flag:ByteCTF{wh4t_aN_eP1c_Tr4i1er_and_a_M4g1c_ch34t3R!!!}

标签

john_doe

Merak 铁菜鸡一枚

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.