Microscope

16 ×

I'm usually looking down, into a microscope.

http://149.56.110.180:1234/

Author: PsycoR


URLにアクセスしてソースを確認すると次のようなHTMLソースになっています。
<!DOCTYPE html>
<html>
    <head>
        <title>Microscope</title>
    </head>
    <body>
        <table>
            <tr>
                <td bgcolor="#474946"></td>
                <td bgcolor="#383961"></td>
bgcolorをバイナリデータとして読み替えるとGIF89aになります。bgcolorをバイナリデータとしてファイルに保存するPythonプログラムを書きます。
from bs4 import BeautifulSoup
import struct

f = open('Microscope.html')
html = f.read()
f.close()
soup = BeautifulSoup(html, 'html.parser')
tds = soup.find_all('td')
data = ''
for td in tds:
data += td.get('bgcolor')[1:]
f = open('aaa.gif', 'wb')
for i in range(0, len(data), 2):
f.write(struct.pack('B', int(data[i:i+2], 16)))
f.close()
実行すると次のアニメーションGIFファイルができます。

aaa

アニメーションGIFのフレームを順番に取得してQRコードを読ませるPythonプログラムを書きます。
from PIL import Image, ImageSequence
from pyzbar.pyzbar import decode

im = Image.open('aaa.gif')
frames = (frame.copy() for frame in ImageSequence.Iterator(im))
flag = ''
for frame in frames:
data = decode(frame)
flag += data[0][0].decode('utf-8', 'ignore')
print(flag)
実行するとフラグが出力されます。
フラグは、
HZVII{7h3_0r161n4l_qr_c0d3_w45_d3v3l0p3d_1n_1994.}