攻防世界MISC—进阶区21-30
21.easycap
得到一个pcap文件,协议分级统计,发现都是TCP协议
直接追踪tcp流,得到FLAG
22.reverseMe
得到一张镜面翻转的flag,放入PS中,图像-图像旋转-水平翻转画布,得到flag
23.stage1
扔进stegsolve中,在green plane 1处发现二维码
QR扫描得到数据
用010 Editor保存为pyc文件,在线反编译,再保存为py文件,运行一下,得到的数据就是flag
(代码结尾要自行添加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")
得到flag
25.Hear-with-your-Eyes
无后缀文件,010查看也没有找到明显的十六进制字节提示,于是尝试改为zip,成功,打开,又得到一个无后缀文件,且010打开后发现有sound.wav,直接导入Audacity
查看频谱图(点击左侧的倒三角,选择频谱图)
得到flag
26.Hidden-Message
得到pcap文件,打开,查看分级协议,均为UDP
看info这列,可以看出只有后两位在变且像二进制数据
提取出来,二进制转换没有成功,看了一下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
27.Recover-Deleted-File
打开后需要解压两次,最后得到disk-image这个文件,使用extundelete恢复磁盘内容
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
根据经验,用stegsolve合成一下,得到flag
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
30.base64÷4
得到一串编码,根据题目提示,64 / 4 = 16;,直接在线base16解码,得到flag