攻防世界MISC进阶区 21-25题 write up

攻防世界MISC进阶区 21-25题writeup

文章目录

    • 21、hit-the-core
    • 22、快乐游戏题
    • 23、glance-50
    • 24、Ditf
    • 25、4-1

21、hit-the-core

1、下载附件,是一个以core结尾的文件,所以放到linux系统中,使用strings命令查看一下,在中间发现有一段很可疑的字符串(可疑主要是因为有花括号{}和flag的格式很像啊)。
攻防世界MISC进阶区 21-25题 write up_第1张图片

2、仔细观察这些字符串,发现每隔4位就有一个大写的字母,然后就按照这个规律,每隔四个取出一位字符,直接可以得到flag。

  • cvqAeqacLtqazEigwiXobxrCrtuiTzahfFreqc{bnjrKwgk83kgd43j85egb_e_rwqr7fvbmHjklo3tews_hmkogooyf0vbnk0ii87Drfgh_n kiwutfb0ghk9ro987k5tfb_hjiouo087ptfcv}

flag: ALEXCTF{K33P_7H3_g00D_w0rk_up}

strings命令

  • strings - print the strings of printable characters in files. 意思是, 打印文件中可打印的字符
  • strings 命令在对象文件或二进制文件中查找可打印的字符串,字符串是 4 个或更多可打印字符的任意序列,以换行符或空字符结束。

core文件

  • core文件:在一个程序崩溃时,它一般会在指定目录下生成一个core文件。core文件仅仅是一个内存映象(同时加上调试信息),主要是用来调试的。

如果觉得这样慢慢的一个一个自己去取出会发生错误的话,也可以使用python处理,代码如下:

str = 'cvqAeqacLtqazEigwiXobxrCrtuiTzahfFreqc{bnjrKwgk83kgd43j85ePgb_e_rwqr7fvbmHjklo3tews_hmkogooyf0vbnk0ii87Drfgh_n kiwutfb0ghk9ro987k5tfb_hjiouo087ptfcv}'
flag = ""
for i in range(3, len(str),5):
    flag += str[i]
print(flag)

攻防世界MISC进阶区 21-25题 write up_第2张图片
flag: ALEXCTF{K33P_7H3_g00D_w0rk_up}

22、快乐游戏题

1、下载下来,是一个小游戏,每次打开游戏的界面格子的显示都不一样的,游戏的大概意思就是:不要让猫走到最边缘的格子。
攻防世界MISC进阶区 21-25题 write up_第3张图片
攻防世界MISC进阶区 21-25题 write up_第4张图片
flag: UNCTF{c783910550de39816d1de0f103b0ae32}

23、glance-50

参考文章:https://blog.csdn.net/vhkjhwbs/article/details/100775409

1、下载文件是一个gif格式的图片,但是打开是一张很小很小的图片,又不能放大。
攻防世界MISC进阶区 21-25题 write up_第5张图片
2、原来图片是把原来的图片分割成很小很小的图片,然后再连接而成的,所以要把每一张图片分隔开,再把每张图片拼接成原来的图片,使用python脚本处理,代码如下:

#切割图片
import os
from PIL import Image

def seoaration_gif(gif_file):
    png_dir = gif_file[:-4] + '/'
    os.mkdir(png_dir)
    img = Image.open(gif_file)
    try:
        while True:
            current = img.tell()
            img.save(png_dir+str(current)+'.png')
            img.seek(current+1)
    except:
        pass

if __name__=='__main__':
    gif_file = 'F:\\CTF学习\\题目文件\\23.gif'
    seoaration_gif(gif_file)
#拼接图像
from PIL import Image
path = "F:\\CTF学习\\题目文件\\23\\"
save_path = 'F:\\CTF学习\\题目文件\\234'

im = Image.new('RGBA',(2*201,600)) #创建新照片

imagefile = [] #存储所有的图像的名称
width = 0
for i in range(0,201):
    imagefile.append(Image.open(path+str(i)+'.png')) #遍历,将图像名称存入imagfile

for image in imagefile:
    im.paste(image,(width,0,2+width,600)) #将图片张贴到另一张图片上
    width = width +2
im.save(save_path+'result.png')
im.show()

攻防世界MISC进阶区 21-25题 write up_第6张图片
flag: TWCTF{Bliss by Charles O’Rear}

24、Ditf

ZmxhZ3tPel80bmRfSGlyMF9sb3YzX0ZvcjN2ZXJ9

1、下载文件是一张很大很大的小姐姐的图片。
攻防世界MISC进阶区 21-25题 write up_第7张图片
2、没有什么思路,就放到linux系统中使用binwalk查看一下,发现文件中有一个压缩包,然后再用foremost查看一下,但是打不开,那应该是要什么压缩密码之类的吧!
攻防世界MISC进阶区 21-25题 write up_第8张图片
3、然后把文件放到HxD中查看一下,图片那么大肯定是有原因的,因为事出反常必有妖嘛!把图片大小该小一点,将图中的4C改为FF。
攻防世界MISC进阶区 21-25题 write up_第9张图片
4、查看图片,果然在下面出现了一串字符串,这应该就是解压的密码了吧,
攻防世界MISC进阶区 21-25题 write up_第10张图片
5、然后把文件后缀名改为zip,解压得到一个pcapng结尾的文件,然后用wireshark打开该文件,然后点击 文件_-> 导出对象 -> HTTP -> save all,导出为http保存下来。
攻防世界MISC进阶区 21-25题 write up_第11张图片

6、然后打开保存的文件,一个一个查看文件,发现再文件%5c{4}中发现了一串base64编码。
攻防世界MISC进阶区 21-25题 write up_第12张图片
攻防世界MISC进阶区 21-25题 write up_第13张图片
7、解码,得到flag。
攻防世界MISC进阶区 21-25题 write up_第14张图片
flag{Oz_4nd_Hir0_lov3_For3ver}

25、4-1

1、下载下来是一张图片。
攻防世界MISC进阶区 21-25题 write up_第15张图片
2、尝试了放到HxD中,没什么收获(可能是我没发现吧),放到linux系统中,使用binwalk查看一下,发现里面有压缩包,然后再foremost查看。
攻防世界MISC进阶区 21-25题 write up_第16张图片

3、解压之后的文件中有三个文件,其中有一个名字时zip的文件,打开,里面还有一个zip压缩包,解压打开,有个txt文档和压缩包,打开文档查看,内容是:Although two days doing the same things, but day2 has a secret than day1,大概的意思就是day2中比day1多了一些东西,那就是盲水印了。
4、使用脚本(github上有https://github.com/chishaxie/BlindWaterMark)直接提取盲水印,得到flag。
在这里插入图片描述
攻防世界MISC进阶区 21-25题 write up_第17张图片
flag: wdflag{My_c4t_Ho}

你可能感兴趣的:(CTF习题write,up)