实验吧:WTF?

解题链接:http://www.shiyanbar.com/ctf/1886

点开解题链接发现一个很长的字符串,很有规律,都是相似的组合。拖到页面底部发现==

立马反应出是base64,然后在线解码,得到了01字串

尝试01字串转换10进制用chr变成ascii字符,发现有很多不可见字符,应该不是这种方式。

尝试8bit转换成16进制,也有很多不明字符,也失败了

后来用len查看str长度,发现是65536,直觉告诉我这个应该是一个256*256的矩阵

生成矩阵后自然而然想到生成图片

利用pil将矩阵转换成字符串,发现是一个类似二维码的图片

扫描发现并不能扫描出任何东西,因为这个二维码是黑底白色的点。然后尝试对字符串的01进行互换

互换后扫描发现flag

代码如下

import numpy as np
from PIL import Image
a=base64解码后的字符串
b=[abs((int(x)-1)*255) for x in list(a)]
narray = np.matrix(b,dtype='uint8').reshape(256,256)
img = Image.fromarray(narray)
img.convert('L')
img.show()

二维码如下

点赞
  1. www说道:
    Google Chrome Windows 10

    :taikaixin: 太厉害啦~

发表评论

[2;3Rer>