BUUCTF(36)

278 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

[羊城杯 2020]image_rar

binwalk发现有很多压缩包,改文件后缀为zip,得到一大堆图片,发现图片65不显示,怀疑有东西

发现好像是个压缩包,文件头被改了,我们将其改回来Rar!(52 61 72 21)

得到压缩包,但是需要密码,可能遗漏了什么,回头看,发现上一个压缩包有信息

压缩包密码(6位):GWxxxx

后面可能会用到的哦

用AR爆破发现似乎爆破不了,换一种思路,利用rar2john提取hash ,然后利用hashcat爆破hash

step1:

kali@kali:~$ /usr/sbin/rar2john /home/kali/桌面/65.rar
/home/kali/桌面/65.rar:$rar5$16$a2dce3925af59efb2df9851dbfc24fb1$15$bb005ea8f91bf0356c8dddcfa41ac4cb$8$62293dc5e26e9e7f

step2:

hashcat -m 13000 -a 3 '$rar5$16$a2dce3925af59efb2df9851dbfc24fb1$15$bb005ea8f91bf0356c8dddcfa41ac4cb$8$62293dc5e26e9e7f' GW?a?a?a?a

得到

GW5!3#

改PNG即出现flag

GWHT{R3fresh_1s_so_Cool}

[羊城杯 2020]TCP_IP

标识(Identification):由发送方帮助组装数据报的片段的标识值

标识里有东西,提出来

0x00000040
0x00000069
0x00000048
0x0000003c
0x0000002c
0x0000007b
0x0000002a
0x0000003b
0x0000006f
0x00000055
0x00000070
0x0000002f
0x00000069
0x0000006d
0x00000022
0x00000051
0x00000050

先转码

import binascii
infile = open('data.txt','r')
content = infile.readlines()
flag = b""
for line in content:
    flag += binascii.unhexlify(line.rstrip('\n')[-2:])
infile.close()
print(flag)

解出来

b'@iH<,{*;oUp/im"QPl`yR*ie}NK;.D!Xu)b:J[Rj+6KKM7P@iH<,{*;oUp/im"QPl`yR'

改进一下脚本

import binascii
import base91
infile = open('data.txt','r')
content = infile.readlines()
flag = b""
for line in content:
    flag += binascii.unhexlify(line.rstrip('\n')[-2:])
infile.close()
print(flag)
print(base91.decode(flag.decode()))

bytearray(b'flag{wMt84iS06mCbbfuOfuVXCZ8MSsAFN1GA\xfd\xe3\x9f"1w\xe3Aw\xea\xbe\x18\tXV\xb8|\x8f')

得到flag

[CFI-CTF 2018]Kadyrov's Cat

给了个jpg与pdf

exiftool /home/kali/桌面/kadyrov_cat.jpeg

梭出来个

GPS Latitude                    : 56 deg 56' 46.63"

GPS Longitude                   : 24 deg 6' 18.28"

转经纬度查询得到city定位Riga

exiftool /home/kali/桌面/message.pdf

得到Kotik Kadyrov

根据flag格式得到flag

flag{Kotik_Kadyrov_of_Riga}

[*CTF2019]babyflash

解压后是个叫flash.swf的文件,百度百科swf(shock wave flash)是Macromedia(现已被ADOBE公司收购)公司的动画设计软件Flash的专用格式

需要工具JPEXS Free Flash Decompiler 来进行反编译

github.com/jindrapetri…

发现有441(21*21)个黑白块,怀疑是二维码,找脚本进行拼接

from os import listdir
from PIL import Image
dirlist = listdir('./images/')
dirlist.sort(key=lambda x:int(x.split('.')[0]))
qrdata = ''
for imgname in dirlist:
    img = Image.open('./images/'+imgname)
    img = img.load()
    if img[0,0] == (0, 0, 0):
        qrdata += '1'#黑色对应1
    elif img[0,0] == (255, 255, 255):
        qrdata += '0'#白色对应0
width=height=21
new_img = Image.new("RGB",(width,height))
i = 0
for w in range(width):
    for h in range(height):
        if qrdata[i] == '1':
            new_img.putpixel([w,h],(0, 0, 0))
        elif qrdata[i] == '0':
            new_img.putpixel([w,h],(255,255,255))
        i += 1
new_img.save('flag.png')

得到flag.png,扫一下

ctf{half_flag_&

得到一半flag,怀疑遗漏了什么,回头看,发现有音频文件,用Audacity看看频谱图得到另一半flag

&_the_rest}

合起来就是flag

ctf{half_flag_&&_the_rest}

但不知道为啥flag是

flag{halfflag&&_the_rest}