ツ令和CTF Write-up (供養)
はじめに
令和CTFに参加しました.
成績
Misc全完して187位(かなしい)
フラグの例は?
平成最後の最後、令和最初のSECCON CTFにようこそ。 フラグはSECCON{reiwa}です。
アプローチ:問題文を読む
SECCON{reiwa}
bREInWAc
元号が変わる。記号も変わる。
令和和和和和和和和和和和和和和和和「令和 和和和和令和和和和令和和和和和和和令和和 和和和和令和和平平平平平成」令和和和。令 和和和和和。成成。。平成成成成。成。令令 和和和和和和和和和和和。令和和。平平平和 和和和。令和和。和和和和。令令和和和和和 和和和和和和和。平平平和和和和和和和和和 和和和和。成成成成成成成成。令成成成成成 成成成。令令。成成成成成。成成成成成成。 令和。平平和和。令令令和和和和和和和和和 和。
アプローチ:適当に置換して実行
#!/usr/bin/env python3 # -*- coding: utf-8 -*- if __name__ == '__main__': dic = {'令':'>', '和':'+', '「':'[', '」':']', '。':'.', '平':'<', '成':'-'} with open('./flag.bw') as f: lines = [s.strip() for s in f.readlines()] flag = '' for line in lines: for x in line: flag += dic[x] print(flag)
>++++++++++++++++[>+++++>++++>+++++++>++++++>++<<<<<-]>+++.>+++++.--..<----.-.>>+++++++++++.>++.<<<++++.>++.++++.>>++++++++++++.<<<+++++++++++++.--------.>--------.>>.-----.------.>+.<<++.>>>++++++++++.
SECCON{bREIn_WAnic!}
零は?
nc zerois-o-reiwa.seccon.jp 23615
example
[1/100] 0=40-? ?=40 [2/100] 0=45*18-? ?=
アプローチ:SymPyに頑張ってもらう
100問解くとflagがもらえるっぽいので100問解くソルバを書く.
#!/usr/bin/env python3 # -*- coding: utf-8 -*- from socket import * from sympy import * from sympy.parsing.sympy_parser import parse_expr if __name__ == '__main__': s = socket(AF_INET, SOCK_STREAM) s.connect(('zerois-o-reiwa.seccon.jp', 23615)) for i in range(101): rec = s.recv(1024).decode('utf-8') print(rec) rec = s.recv(1024).decode('utf-8') prob = rec.split('\n')[0].split('=')[1].replace('?','x') print(prob) ans = solve(Eq(parse_expr(prob),0)) if ans == True: print('True') s.send(str(0).encode('utf-8') + b'\n') else: print(ans[0]) s.send(str(ans[0]).encode('utf-8') + b'\n')
[snip] [98/100] 96-39+52*89-84+68*73-87+30*79+79*99-61*34+47-62-84*18+77-99*61+5+2*72-38*55+48-88*99-21+30*18+60-7+52-29*70*50-15+88-87+8*34+55*70-3+18*64-55+37*22-10*35+82-43+18*6-40+65*89-6-0+43*76+85*41-37-42*65+69*96+19-38*70-4+66-92*86+47*2-64+36*41+71-23-57+90*8*30-37+25+32*23-47+63-15*94*32+x 110987 [99/100] 60-87+44*7+51-34*80+70*43-18-25*4+97*63-35+16+93*51-8*36-57+47-76+72*62*17-60+79-96+58*92+97*58-96-4*51+17-25+9*35-26*61+39+67*15-36-51+90*71+40-77*30*98+47-3*21-23+12*88-74+20-70+35*34-82+49*97-31*34+19+11*74-68+56-9*17-36*94+61*20+58-16-81*24+45-99+46*94*66-0+8+10-28*46+x*0-62-84+31-163413 True [100/100] 12+37-58*62+51*1-26+1-2*35-50+63*36*23-18+16-36+88*65+77*48-74+50-30*53-68*95+12-29*95+32+72-17*36*62-22+3-96+14*28+27*83-97*87-55+11+75*35-67-66*15+6*3+17-26-13+14*89*45+3-67+17-88*48-45*71+68-40+50*2*91+14-42-18+51*48*43-64+61*58+51-22*82-61+89+28-93*51+68*54-91*6-17+62+10*35-88-0*x+2-168262 True Congratulations! The flag is SECCON{REIWA_is_not_ZERO_IS}. (Enter RETURN key if connection is not disconnected)
SECCON{REIWA_is_not_ZERO_IS}
まとめ
- 平成終わったのにQRコード解けなくてツ令和