ASIS CTF Writeup PPC/Code&Code
ncで接続するとQRコードが表示されるので、デコードして入力すると別のQRコードが表示される。
100回入力するとflagが出てくる。
文字列なQRコードをデコードする方法が思いつかず、画像に変換してからデコードした。
import sys import socket import Image from qrtools import QR def solve(qrcode): make_qrcode_image(qrcode) code = QR(filename='qrcode.png') if code.decode(): return code.data return 'null' def make_qrcode_image(qrcode_str): img = Image.new('RGB', (30*2, 30*2), (0xff, 0xff, 0xff)) x = 0 y = 0 for l in qrcode_str.rstrip('\n').split('\n'): for c in l.lstrip(' ').split(' '): if c == '-': for kx in range(2): for ky in range(2): img.putpixel((y*2+ky,x*2+kx), (0x00, 0x00, 0x00)) x += 1 y += 1 x = 0 img.save('qrcode.png') s = socket.socket(socket.AF_INET) s.connect(('asis-ctf.ir', 12435)) print s.recv(1024) print s.recv(1024) s.send('\n') for count in range(0,100): print s.recv(1024) qrcode = s.recv(1024) qrcode += s.recv(1024) qrcode += s.recv(1024) print qrcode ans = solve(qrcode) print ans print count s.send(ans + '\n') print s.recv(1024) # flag s.close()
the flag is: ASIS_ebd814d43f558d1b73d077234f65b71b
今回はWebが難しくて1問も解けませんでした。
バイナリも解きたかったけど @potetisensei が解きまくってて手が出せませんでした。
おしまい。