CCTF重邮(绿盟)杯_部分解密题WriteUp

CCTF重邮(绿盟)杯_部分解密题

0X00   Kungfu

解开压缩包,里面就是一个图片(又是那个卖如来神掌的老乞丐),按照脑洞惯例跑Stegsolve。

CCTF重邮(绿盟)杯_部分解密题WriteUp_第1张图片

在文件底发现了“key is …..”把它复制出来再说。

VF95c0s5XzVyaGtfX3VGTXR9M0Vse251QEUg

明显是一个base64加密,放解码器跑出来是这个:

T_ysK9_5rhk__uFMt}3El{nu@E 

这已经很接近flag的格式了,只要再换一下字符的顺序就好了,试一下栏栅加密。

CCTF重邮(绿盟)杯_部分解密题WriteUp_第2张图片
框中那个去掉@就是这个题目的flag了。

0X01   so_easy

这是解密签到题了,的确so easy(lll¬ω¬)。下载文件是一个压缩包(都没加密),解压后里面是一个lsb.bmp图片。

CCTF重邮(绿盟)杯_部分解密题WriteUp_第3张图片

老套路,Stegsolve打开。
CCTF重邮(绿盟)杯_部分解密题WriteUp_第4张图片

文件底部并没有藏东东,下面就看看色阶。
CCTF重邮(绿盟)杯_部分解密题WriteUp_第5张图片

在Red的0阶可以看到隐藏的flag。

0X02   你知道吗?这是什么

下载下来是一个名叫hidden.png的文件,打开是白板一片,什么都没有,在Stegsolve里面也没有发现有价值的信息。猜测是文件包含类的题目,把文件放到binwalk里面看一下文件结构,发现的确包含了一个zip压缩包。

CCTF重邮(绿盟)杯_部分解密题WriteUp_第6张图片

用binwalk将它提取出来:binwalk –e hidden.png
在提取的文件里面就有一个hidden2.jpg文件,flag就在图片上。

CCTF重邮(绿盟)杯_部分解密题WriteUp_第7张图片

0X03   表情包

这道题是颜文字加密,其实就是一段js代码,以前做过这个题,直接在浏览器的控制台跑一下就可以了,但是这次在浏览器跑了却报错。
前前后后想了很久,最后没有办法只有把网站上的例子拿来实验看,发现这个颜文字加密的前面都是一样的。再回过头来看题目,发现有部分“表情”不对。

把//<em>´∇`em>/改为//*´∇`*/
把<em>改为_
把em>改为_
把'\'改为'\\'

解密站点
这里虽然报错了,但是你可以点那个VM,里边就有他解释的信息。
CCTF重邮(绿盟)杯_部分解密题WriteUp_第8张图片
CCTF重邮(绿盟)杯_部分解密题WriteUp_第9张图片
(PS:由于做的时候没有截图,之后官方把站点关了,没有保存题目,在这里就借用以下P猫的图片。)

以上两张图片感谢ChaMd5团队pcat大佬提供。


0X04   MP3_is_so_good

这是一个典型的MP3加密题,在压缩包中有mp3文件和密码文件。mp3解密是需要密码的,但是这次的密码他没有明确的给出。在hint.txt中是这样的:
CCTF重邮(绿盟)杯_部分解密题WriteUp_第10张图片
这个东西很明显是色标号,由黑和白组成,估计就是二维码。写个脚本把它还原出来看看。

#将原文件中的(255,255,255)转成0,(0,0,0)转成1
import re

file = open('hint.txt')
f = open('new.txt','a+')

for i in range(78400):
    line = file.readline()#读取一行
    if line[1:4] == '255':
        f.write("0\n")
    else:
        f.write('1\n')
f.close()
file.close()
#-*- coding:utf-8 -*-
from PIL import Image
import re

x = 280 #x坐标  通过对txt里的行数进行整数分解
y = 280 #y坐标  x*y = 行数
im = Image.new("RGB",(x,y))#创建图片
file = open('new.txt') #打开rbg值文件

#通过一个个rgb点生成图片

for i in range(0,x):
    for j in range(0,y):
        line = file.readline()#获取一行
        if int(line) == 0:
            im.putpixel((i,j),(255,255,255))#rgb转化为像素
        else:
            im.putpixel((i,j),(0,0,0))#rgb转化为像素
im.show()

PS:python不熟,dalao们别笑,(✿◡‿◡)

CCTF重邮(绿盟)杯_部分解密题WriteUp_第11张图片

里面提示了MP3stego的密码在1000到1300之间,然后就是批量爆破密码了,最后得到密码是1067

CCTF重邮(绿盟)杯_部分解密题WriteUp_第12张图片

最后拿到flag:flag{Brute_f0Rce_iS_W0nderful}

你可能感兴趣的:(CTF,解密)