第十三封情书—ctf.show平台

题目链接:
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文件头,于是先写脚本返回来。
第十三封情书—ctf.show平台_第1张图片
第十三封情书—ctf.show平台_第2张图片
2、将反回来的东西以16进制数粘贴到010里保存为zip文件即可得到一个压缩包。解压发现要密码,提示跟K有关,那么就百度。说是笛卡尔给公主写的情书,内容是 r=a(1-sinθ) ,找到那位公主名字“Kristina”就是密码,解压即可。
在这里插入图片描述
第十三封情书—ctf.show平台_第3张图片
在这里插入图片描述
3、然后用Base64解密竟然不行,想到题目的第“十三”封情书,猜测是rot13解密,得到的再Base64解密,再url解密得到如下内容。
第十三封情书—ctf.show平台_第4张图片
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()

第十三封情书—ctf.show平台_第5张图片
由图得flag为“ CTF_SHOW ”(第四个图猜了好久,提交了好几次才对)。

转载请注明出处。
本文网址:https://blog.csdn.net/hiahiachang/article/details/105207093

你可能感兴趣的:(python,信息安全)