MISC
一、d3readfile
1.题目大概的要求就是让我们想办法获取到flag的filepath,从而读取flag文件,想到了locate命令,查一下locate命令是基于哪个数据库进行查询的,搜到数据库文件位于/var/cache/locate/locatedb
https://blog.csdn.net/weixin_45935219/article/details/120697149
2.直接先查询这个文件,找到关键字flag
3.输入flag的文件位置opt/vwMDP4unF4cvqHrztduv4hpCw9H9Sdfh/UuRez4TstSQEXZpK74VoKWQc2KBubVZi/LcXAfeaD2KLrV8zBpuPdgsbVpGqLcykz/flag_1s_h3re_233 ,得到flag
antd3ctf{18ea1bb6a95eabbfcc67615025e088ffce4f73ee}
二、d3gif
1.得到文件后感觉名字应该是提示作用,看一下gif图,发现最大的区别就是背景颜色不断变,并且有1089帧,1089是33的平方,直接猜测是根据背景颜色可以组成一个新的矩形图
2.使用在线工具将其先逐帧分离
3.首先使用脚本读取一下每帧的背景颜色(取色定位点直接选在(0,0)),写个脚本
点击查看代码
from PIL import Image
f = open("./1.txt","w")
for i in range(1,1090):
img = Image.open(str(i) + '.png')
rgb = img.getpixel((0, 0))
f.write(str(rgb))
f.close()
4.我们可以发现,第四位均为255,第三位有0和1之分,那么0,1就是绘制新图的依据,假设0时绘制第三通道为255,1时绘制第三通道为0,写脚本(跟0,1转黑白一个道理)
点击查看代码
from PIL import Image
img1 = Image.new(mode='RGB', size=(33, 33))
for i in range(1, 1090):
img = Image.open(str(i) + '.png')
rgb = img.getpixel((0, 0))
if rgb[2] == 0:
img1.putpixel((rgb[0], rgb[1]), 255)
elif rgb[2] == 1:
img1.putpixel((rgb[0], rgb[1]), 0)
img1.save("./AAA.png")
5.得到一个小二维码,扫码得到flag
antd3ctf{G1F_0R_C0L0R_0R_QRC0D3_0R_WHAT???}
标签:img,Image,MISC,rgb,AntCTF,flag,CTF2023,img1,png
From: https://www.cnblogs.com/120211P/p/17368252.html