NITIC CTFに参加しました。
公式から答えが出ていますが、備忘録としてWritesupを記載します。
スコアサーバー
https://ctf.waku-waku-club.com/contest/nitic_ctf_1
Dangerous Twitter
対象のアカウントから、サイトのパスワードを調査するもの。
色々見ていたところ、投稿されている画像の一枚(https://twitter.com/FPC_COMMUNITY/status/1284684386361724928/photo/1 )に、パスワードが記載されており
それが答えになる。
FLAG:nitic_ctf{abaE33F5}
色々調べすぎて、作者の裏アカウントまで知ってしまいました
8^2
与えられた文字をブラウザにそのまま入力するとフラグを得られます。
FLAG:nitic_ctf{nemu_numu_panti_shitai}
prime_factorization
与えられた数(408410100000)を素因数分解することでフラグを得られる。
素因数分解ができるサイト(https://keisan.casio.jp/exec/system/1161228771 )があったので、計算するとフラグが得られる。
FLAG:nitic_ctf{2_5_3_5_5_5_7_5}
anim
対象のファイルを確認するとzipファイルであるので、解凍する。
中を確認すると、pptフォルダ、[Content_Types].xmlがあるため、パワーポイントのファイルであると分かる。
更に中を確認していくとanim\flag\ppt\mediaにフラグがあることが分かる。
FLAG:nitic_ctf{ppppptx}
Fortran
対象ファイルをstringsで確認すると中にフラグがあることが確認できます。
FLAG:nitic_ctf{No_FORTRAN_Yes_Fortan}
cha1n
中を確認すると、複数のファイルが格納されている。
そのファイルを標題通りの順番で実行すると、フラグが得られる。
FLAG:nitic_ctf{cha1n_cha1n_cha1n_cha1n_cha1n_5combo}
shift_only
pythonのプログラムとフラグがエンコードされたファイルが渡される。
プログラムを確認すると、
i.元の文字を1~9文字のいずれかの値でずらす
ii.ずらした結果をshift_tableの長さで割り、shift_table[あまりの数字]で置き換える
iii.全ての文字をずらした後に、ずらした数を先頭に付与する。
iv.i~iiiをFORMATの文字列分繰り返す。
そのため、解読するためには文字列の先頭が数字かどうか確認し、数字でない場合終了。
数字の場合には、先頭を除いたうえで、先頭の数字分前にずらしていくことを繰り返すことでフラグが得られる。
回答コード
enflag="6}bceijnob9h9303h6yg896h0g896h0g896h01b40g896hz"
shift_table = "abcdefghijklmnopqrstuvwxyz0123456789{}_"
while(1):
if enflag[0].isdecimal()!=True:
break
else:
enflag_1=enflag[1:]
res = ""
for c in enflag_1:
res += shift_table[(shift_table.index(c) - int(enflag[0])) % len(shift_table)]
enflag=res
print(enflag)
FLAG:nitic_ctf{shift_shift_shift_and_shift}
#感想
サクサク解けて非常におもしろかったです。
相変わらず、Pwnが解けないので精進したいと思います。