题目链接:
https://ctf.show/challenges#%E6%9D%82%E9%A1%B92_%E7%AC%AC%E5%8D%81%E4%B8%89%E5%B0%81%E8%AF%B7%E4%B9%A6
1、图片是png,搜索png尾格式“AE426082”,发现早早结束,又发现了紧接着的恰好是反着的zip文件头,于是先写脚本返回来。
2、将反回来的东西以16进制数粘贴到010里保存为zip文件即可得到一个压缩包。解压发现要密码,提示跟K有关,那么就百度。说是笛卡尔给公主写的情书,内容是 r=a(1-sinθ) ,找到那位公主名字“Kristina”就是密码,解压即可。
3、然后用Base64解密竟然不行,想到题目的第“十三”封情书,猜测是rot13解密,得到的再Base64解密,再url解密得到如下内容。
4、我每一行加起来试了一下,发现有好几行都是 π 的倍数,说明跟角度 θ 有关,试着x=cosθ,y=sinθ 。写脚本画图即可。
脚本如下:
#Author:空
import math
import numpy as np
import matplotlib.pyplot as plt
sin=math.sin
cos=math.cos
pi = math.pi
x=[[0.795,2.355,3.925,5.495],
[0.785,2.351,1.57,4.71],
[0.785,2.355,3.93,2.966,0.174],
[5.23,4.19],
[1.047,2.093,2.966,0.174,5.408,4.012],
[0.785,5.495,0.087,3.200,2.442,3.838],
[0.785,2.355,3.925,5.495],
[0.349,5.582,1.570,3.838,2.791]]
y=[]
z=[]
for i in range(0,len(x)):
y.append([])
z.append([])
for j in range(len(x[i])):
ty =sin(x[i][j])
tz =cos(x[i][j])
y[i].append(ty)
z[i].append(tz)
plt.figure(figsize=(2, 2))
plt.plot(z[i],y[i])
plt.show()
由图得flag为“ CTF_SHOW ”(第四个图猜了好久,提交了好几次才对)。
转载请注明出处。
本文网址:https://blog.csdn.net/hiahiachang/article/details/105207093