CTF-BugKu-杂项-29-33
2020.09.15
今天换个新壁纸,换个新背景音乐,燃起来💃
做题
第二十九题 论剑
https://ctf.bugku.com/challenges#论剑
- 图片详情没啥信息,不是正方形,考虑改成正方形,果真有用,但是有部分被挡住
- StegSolve看了没啥东西,binwalk
binwalk -e lunjian.jpg
发现藏了一张图片,手动分离一下dd if=lunjian.jpg of=res.jpg skip=17569 bs=1
- 打开还是一张论剑⚔️再次尝试改成正方形,没啥东西,再用StegSolve看看,没啥东西
- 不知道该干嘛了,但就在我拖着winhex看的时候,在中间部分发现疑似有用信息,是一串二进制,转换一下试试
mynameiskey!!!hhh
- md,这看起来好像没什么用,但是我一想第一步中得到的结果最后也有个hhh,是不是有什么联系,第一步明显是十六进制,我把它转化为十六进制与第一步结果对比
- 好像并不是太一样,看来是我想多了……mdfuck😕
第一步结果:flag (666C61677B6D795F6E61 65 4 121 7 hhhh
第五步结果: 6D79 6E616D6569736B6579!!!hhh - 原来是这样,在二进制后边是一个被修改了的7z压缩文件头,把它改成
37 7A BC AF 27 1C
这样,就可以正常分离出来一个压缩包了,哈哈哈哈
- 用二进制转换的密码打开压缩包,有得到一个论剑⚔️,不是正方形,修改高度可得其余flag
flag{666C61677B6D795F6E616D655F482121487D}
第一步结果:flag (666C61677B6D795F6E61 65 4 121 7 hhhh
第八步结果: 660 6167 1 D 5F 61 6D655F482121487D} hhhh
- 当然,最终提交结果,还得把中间的十六进制转化为字符串,也就是
flag{my_name_H!!H}
第三十题 图穷匕见
https://ctf.bugku.com/challenges#图穷匕见
- 图片详情有些提示,图形不是正方形,先改成正方形,打开winhex,发现没必要改了,全是数字,肯定有鬼🐢
- 把数字取出来,十六进制转ascii试试,得到一堆坐标似的东西,联系第一步中的提示,知道我们要根据这个坐标画图
- 这是我喜欢的环节,脚本环节,哈哈哈,用py来画个图吧,奥力给
# 此脚本用于根据坐标绘制图片
import matplotlib.pyplot as plt
i = 0
fig = plt.figure()
with open('res2.txt') as f:
for xy in f.readlines():
xy = xy.strip()
xy = eval(xy)
plt.scatter(xy[0], xy[1], c=255, marker=".")
i += 1
# print("\r\n[+] Has dealed", i, "lines")/
plt.show()
可能是脚本的问题,跑了老久都没跑出来,改个多线程试试……
第三十一题 convert
https://ctf.bugku.com/challenges#convert
- 打开时二进制文件,那么也就是说,我们要把显示的二进制,转化为存储的二进制,我应该怎么办
# 此脚本用于转换看到的二进制到存储的二进制
import struct
with open('1.txt') as f:
miwen = f.read()
with open('res', 'wb')as fp:
for i in range(int(len(miwen)/8)):
a = struct.pack('B',int(miwen[i*8:(i+1)*8],2))
fp.write(a)
f.close()
fp.close()
- 通过上边脚本,成功将二进制转储,得到一个rar压缩文件,解压得到下图
- 查看图片详情,得到base64信息,转码得flag
flag{01a25ea3fd6349c6e635a1d0196e75fb}
第三十二题 听首音乐
https://ctf.bugku.com/challenges#听首音乐
- 下载好慢,先做下一道
- ok了,提示很明确,stego打开发现奇怪的地方
- 放大来看,酷似某种密码,摩斯密码,长短长短……转化为密码
..... -... -.-. ----. ..--- ..... -.... ....- ----. -.-. -... ----- .---- ---.. ---.. ..-. ..... ..--- . -.... .---- --... -.. --... ----- ----. ..--- ----. .---- ----. .---- -.-.
- 解码得flag
5BC925649CB0188F52E617D70929191C
,鬼知道我试了多少遍😒
第三十三题 好多数值
https://ctf.bugku.com/challenges#好多数值
- 下载打开是确实是一堆数值,但是打眼一看就是rgb颜色吧,那么思路肯定就是用颜色画图了吧,颜色是有了,但是得有图片的宽度和高度啊,要不然怎么画,总不能把所有的颜色画到一个直线上吧🧐
- 很好,能学一下怎么画图了,代码来自于这里
from PIL import Image
def Crack(n):#因数分解
flag = []
for each in range(2,int(n **0.5)+1):
if(n % each == 0):
print(each,int(n/each))
flag += [(each,int(n/each))]
if len(flag) == 1:return flag[0]
else:
choice = input("选择第几组(0-%s):"%(len(flag)-1))
return flag[int(choice)]
def Paint(X,Y,listrgb):#根据字符串列表画图
pic = Image.new("RGB",(X, Y))
i=0
for x in range (0,X):
for y in range (0,Y):
temp = listrgb[i].split(',')
pic.putpixel([x,y],(int(temp[0]),int(temp[1]),int(temp[2])))
i = i+1
pic.show()
#pic.save(r"C:\Users\ben\Desktop\flag%s.png"%(X))
listrgb = open(r"C:\Users\ben\Desktop\1.txt").readlines()
X,Y = Crack(len(listrgb))
Paint(X,Y,listrgb)
Paint(Y,X,listrgb)
- 然后结果就出来了,大佬写的脚本就是帅
flag{youc@n'tseeme}
- 那么我能不能用这个脚本去解决第三十题呢??我感觉应该可以吧
开心就完事了🥱
赠人玫瑰🌹手有余香
能帮到你我很高兴
您的赞👍是我前进的动力,奥力给
Thanks for watching!
赠人玫瑰🌹手有余香
能帮到你我很高兴
您的赞👍是我前进的动力,奥力给
Thanks for watching!