st98 の日記帳

[ctf] Pragyan CTF 2015 の write-up

ぼっチーム omakase で参加した。最終的に獲得できたポイントは 600 点でチーム順位は 20 位 (登録 269 チーム、参加 159 チーム中) で日本勢の中では 4 位 (20 チーム中) だった。

の 13 問を解いた。

Hackerz (Android 100 pts)

flag: y0u_4r3_4_h4ck3r

Fast and Furious (Android 100 pts)

flag: y0u_4r3_5up3r_f457

Roman (Cryptography 10 pts)

flag: deltaforceatnit

One more headache (Cryptography 20 pts)

def f(a):
  t = a.lower()
  for c in range(0x61, 0x61 + 26):
    if chr(c) not in t:
      t += chr(c)
  def g(b):
    s = ''
    for c in b.lower():
      s += chr(t.find(c) + 0x61)
    return s
  return g

flag: ilovectf

The impossible (Cryptography 50 pts)

'sfblvmlhyhpgrudnntagfxstbgxyk'.match(/./g).map(function (c, i) {
  return String.fromCharCode((c.charCodeAt(0) - 0x60 + i) % 26 + 0x61);
flag: deltaatpragyan

Weak RSA (Cryptography 100 pts)

flag: too_close_primes

Don’t Stop (Steganography 5 pts)

flag: 16bbee7466db38dad50701223d57ace8

Put on your reading glasses (Steganography 10 pts)

flag: 8febb919bc0fc08e3e1108b1b6bfef37

What you see is what you get. (Steganography 50 pts)

flag: PrAgyaNCTF_sTeg1_key

Emma Watson (Steganography 100 pts)

from PIL import Image
def f(a, n):
  return [a[x:x+n] for x in range(0, len(a), n)]
im ='the_bling_ring.png')
w, _ = im.size
a = []
for x in range(w):
  r, g, b, _ = im.getpixel((x, 0))
  a.append(str(int(not (r == g and g == b))))
print(''.join(chr(int(''.join(x), 2)) for x in f(a, 8)))
flag: The_beauty_of_paradise_is

are you a good ripper? (Misc 5 pts)

flag: 4pesb9b9blkfc08e3z2105b1b6bfif45

Totally abstruse (Misc 30 pts)

flag: Hello, world!

Find the flag (Web 20 pts)

flag: 904d553eae0a2a5b82d82fd4f0c7ae6f5fe955f5
このエントリーをはてなブックマークに追加 / st98 の日記帳