本文已参与「新人创作礼」活动,一起开启掘金创作之路。
[羊城杯 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 来进行反编译
发现有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}