攻防世界MISC—进阶区21-30

21.easycap

得到一个pcap文件,协议分级统计,发现都是TCP协议

image
直接追踪tcp流,得到FLAG
image

22.reverseMe

得到一张镜面翻转的flag,放入PS中,图像-图像旋转-水平翻转画布,得到flag

image

23.stage1

扔进stegsolve中,在green plane 1处发现二维码

image
QR扫描得到数据
image
用010 Editor保存为pyc文件,在线反编译,再保存为py文件,运行一下,得到的数据就是flag
image
(代码结尾要自行添加flag())

24.Miscellaneous-200

这是一个绘图题,
借用了别人的脚本,稍微修改了一下
from ast import literal_eval
from PIL import Image
f = open('flag.txt', 'r')
corl = [literal_eval(line) for line in f.readlines()]
f.close()
img = Image.new('RGB', (270, 270), '#ffffff')
k=0
for i in range(246):
 for j in range(246):
 	 img.putpixel ([i , j], corl[k])
	  k=k+1
img.save("flag.png")

image
得到flag

25.Hear-with-your-Eyes

无后缀文件,010查看也没有找到明显的十六进制字节提示,于是尝试改为zip,成功,打开,又得到一个无后缀文件,且010打开后发现有sound.wav,直接导入Audacity

image
查看频谱图(点击左侧的倒三角,选择频谱图)
image
得到flag

26.Hidden-Message

得到pcap文件,打开,查看分级协议,均为UDP

image
看info这列,可以看出只有后两位在变且像二进制数据
image
提取出来,二进制转换没有成功,看了一下WP,得知需要转换01的顺序

import numbers
number = '10110111100110101001011010001100100110101001000110011101100110101000110110011000'
number1 = number.replace("1","A")
number2 = number1.replace("0","B")
print(number2)
number3 = number2.replace("A","0")
number4 = number3.replace("B","1")
print(number4)

二进制转字符串,得到flag
image

27.Recover-Deleted-File

打开后需要解压两次,最后得到disk-image这个文件,使用extundelete恢复磁盘内容

image
extundelete参考内容:https://blog.csdn.net/a1779078902/article/details/84657816
运行后得到RECOVERED_FILES文件夹,打开后里面有一个flag文件
用kali的root用户运行,刚开始权限可能会报错,可以先运行一下这条命令:

chmog a+x 文件名

然后再运行 ./flag
得到flag

28.What-is-this

得到文件无后缀,添加zip后缀,解压两次,得到两张jpg

image
根据经验,用stegsolve合成一下,得到flag
image

29.red_green

参考了一下网上的WP,得知是要用脚本对图片中的红绿两种颜色进行识别,然后转化为01,最后绘图
贴上大佬的脚本

from PIL import Image
import os
import bitstring

image_name = '1.png'
current_path = os.path.dirname(__file__)
im = Image.open(os.path.join(current_path,image_name))
image_width = im.size[0]
image_height = im.size[1]
# load pixel
pim = im.load()
bin_result = ''
for row in range(image_height):
	for col in range(image_width):
    	if pim[col,row][0] == 255:
        	bin_result += '1'
    	else:
        	bin_result += '0'
with open(os.path.join(current_path,'result.jpg'),'wb') as f:
f.write(bitstring.BitArray(bin=bin_result).bytes)

导出的图片上面就是flag
image

30.base64÷4

得到一串编码,根据题目提示,64 / 4 = 16;,直接在线base16解码,得到flag

image

posted @ 2022-04-17 19:03  CPYQY_orz  阅读(195)  评论(0编辑  收藏  举报