st98 の日記帳


[ctf] tkbctf4 の write-up

チーム omakase として参加した。最終的に獲得できたポイントは 626 点でチーム順位は 13 位だった。
rand (javascript 200), args (javascript 200), gradius (binary 100), monochrome bar (steganography 100) の 4 問を解いた。
rand は 3 番目に正解したので 6 点、args は最初に正解したので 20 点のボーナスポイントがあった。

解けた問題

rand (javascript 200)

Object.keys(this) // => ["print", "quit", "version", "arguments", "g"]
String.prototype.split = String.prototype.join = function () { return String(this); };
g('print(getFlag + "")'); // => '…FLAG{7f94427ec6f49f70642d41c675b98832}'
flag: 7f94427ec6f49f70642d41c675b98832`

gradius (binary 100)

flag: !!D4GG3R!!

monochrome bar (steganography 100)

import sys
from PIL import Image

def main(name='monochrome_bar.png', width=270, *_):
  orig = Image.open(name)
  img = Image.new('RGB', (width, 72900 // width), (128, 128, 128))

  for y in range(72900 // width):
    cut = orig.crop((y * width, 0, (y + 1) * width, 1))
    img.paste(cut, (0, y))

  img.save('output.png')

  return 0

if __name__ == '__main__':
  sys.exit(main(*sys.argv[1:]))
flag: Ch1t3k1k0k1sh1n-m4n

args (javascript 200)

g();
args.callee(true); // => 'FLAG{3d2dba5b774814fa8fe87798898b7b30}'
flag: 3d2dba5b774814fa8fe87798898b7b30

解けなかった問題

amida (misc 300)

import base64
import io
import re
import socket
import sys
import uuid
from PIL import Image

def main(host='203.178.132.117', port=42719, *_):
  s = socket.create_connection((host, port), 3)
  s.settimeout(3)

  print('[*]', s.recv(0x1000))

  while True:
    for x in range(50):
      print('[*] ', x)

      f = ''

      while True:
        r = s.recv(0x1000)
        f += re.findall(r'(?:#\d+\n)?(.+)(?:\nAnswer\?\n)?', r.decode('ascii'))[0]
        if b'\nAnswer?\n' in r:
          break

      Image.open(io.BytesIO(base64.b64decode(f))).show()

      s.send(input('> ').encode() + b'\n\n')
    print('[*]', s.recv(0x1000))

    if input() == 'q':
      break
    else:
      continue

  s.close()

  return 0

if __name__ == '__main__':
  sys.exit(main(*sys.argv[1:]))
このエントリーをはてなブックマークに追加
st98.github.io / st98 の日記帳