NITIC CTF 2 write-up
NITIC CTF 2に参加しました。あまり時間がとれずすぐに解ける問題だけ解いて90位でした・・・しっかり復習します・・・
Web
web_meta 100pt
HTMLをテキストエディタで開くとmetaタグに
<meta name="description" content="flag is nitic_ctf{You_can_see_dev_too1!}">
と記載があることを確認できる。
flag is nitic_ctf{You_can_see_dev_too1!}
long flag 200pt
spanタグを全て消すだけ
nitic_ctf{Jy!Hxj$RdB$uA,b$uM.bN7AidL6qe4gkrB9dMU-jY8KU828ByP9E#YDi9byaF4sQ-p/835r26MT!QwWWM|c!ia(ynt48hBs&-,|3}
password 300pt
パスワードの文字が紛らわしいので、打ち間違えても通るようにしました。
この問題がわからなかった・・・pythonが・・・
下記のコードが怪しいが、何をしているのか・・・
def fuzzy_equal(input_pass, password):
if len(input_pass) != len(password):
return False
for i in range(len(input_pass)):
if input_pass[i] in "0oO":
c = "0oO"
elif input_pass[i] in "l1I":
c = "l1I"
else:
c = input_pass[i]
if all([ci != password[i] for ci in c]):
return False
return True
Pwn
pwn monster 1 200pt
pwn monsterが完成しました!ライバルのpwnchuは最強で、バグ技を使わない限りは勝てないでしょう。
通常のままだと必ず負けるので、BufferOverFlowを使用し、値を書き換える
nitic_ctf{We1c0me_t0_pwn_w0r1d!}
pwn monster 2 300pt
pwn monster 2ではバグ技を検知する機構を追加しました。
合計して110になっていればChecksumを通過できる。
考えるのが面倒で後回しにしてたら時間切れになってた
Misc
Excel 100pt
Excelファイルのあるセルにフラグが書かれています!見つけて下さい!
検索するだけ
nitic_ctf{plz_find_me}
image_conv 200pt
ステガノグラフィーの問題
うさみみハリケーンの青空白猫を使った
nitic_ctf{high_contrast}
braincheck 300pt
以下の内容が記載されたファイルが渡される
>,>,[>+>+<<-]>>[<<+>>-]<<[-<->]<-----[<+>[-]]>>[<<+>>-]<,[>+>+<<-]>>[<<+>>-]<<[-<->]<>+++++++++++++++++++++++++++++++++++++++++++++++++[<----->-]<[<+>[-]]>>[<<+>>-]<,[>+>+<<-]>>[<<+>>-]<<[-<->]<>++[<----->-]<-[<+>[-]]>>[<<+>>-]<,[>+>+<<-]>>[<<+>>-]<<[-<->]<------[<+>[-]]>>[<<+>>-]<,[>+>+<<-]>>[<<+>>-]<<[-<->]<----[<+>[-]]>>[<<+>>-]<,[>+>+<<-]>>[<<+>>-]<<[-<->]<>++++++++++++++++++++++++++++++++++++++++++++++++++[<----->-]<--[<+>[-]]>>[<<+>>-]<,[>+>+<<-]>>[<<+>>-]<<[-<->]<>+++++++++++++++++++++++++++++++++++++++++++++++[<----->-]<----[<+>[-]]>>[<<+>>-]<,[>+>+<<-]>>[<<+>>-]<<[-<->]<>++[<----->-]<----[<+>[-]]>>[<<+>>-]<,[>+>+<<-]>>[<<+>>-]<<[-<->]<>+++++++++++++++++++++++++++++++++++++++++++++++[<----->-]<[<+>[-]]>>[<<+>>-]<,[>+>+<<-]>>[<<+>>-]<<[-<->]<>++++[<----->-]<--[<+>[-]]>>[<<+>>-]<,[>+>+<<-]>>[<<+>>-]<<[-<->]<>++++++++++++++++++++++++++++++++++++++++++++++++[<----->-]<--[<+>[-]]>>[<<+>>-]<,[>+>+<<-]>>[<<+>>-]<<[-<->]<----[<+>[-]]>>[<<+>>-]<,[>+>+<<-]>>[<<+>>-]<<[-<->]<>++++++++++++++++++++++++++++++++++++++++++++++++++[<----->-]<-[<+>[-]]>>[<<+>>-]<,[>+>+<<-]>>[<<+>>-]<<[-<->]<>+++[<----->-]<[<+>[-]]>>[<<+>>-]<,[>+>+<<-]>>[<<+>>-]<<[-<->]<>++++++++++++++++++++++++++++++++++++++++++++++++[<----->-]<---[<+>[-]]>>[<<+>>-]<,[>+>+<<-]>>[<<+>>-]<<[-<->]<---------[<+>[-]]>>[<<+>>-]<,[>+>+<<-]>>[<<+>>-]<<[-<->]<------[<+>[-]]>>[<<+>>-]<,[>+>+<<-]>>[<<+>>-]<<[-<->]<>+++++++[<----->-]<-[<+>[-]]>>[<<+>>-]<,[>+>+<<-]>>[<<+>>-]<<[-<->]<>++++++++++++++++++++++++++++++++++++++[<----->-]<----[<+>[-]]>>[<<+>>-]<,>>+<<<[-]<[[-]>+++++++++++++++++[<+++++>-]<++.>+++++[<+++++>-]<++.---.-.-------.>>>>-<<<<[-]]>>>>[[-]>+++++++++++++[<+++++>-]<++.>++++++++[<+++++>-]<++++.+++..>++[<----->-]<---.--.>+++[<+++++>-]<++.[-]]
Brainfuckと呼ばれる言語であることはわかった
オンラインでデコード、実行してくれるサイトにかけて実行したがエラーとなった。
そこまでして解きたい問題でもなかったので、知識として知っていたのでいいかと諦めた。
他の方のWriteUp参考に時間があればやるかな・・・
Rev
protected 200pt
普段Reversingやらないので今回はやろう!と思っていたのですが結局手をつけず・・・
解いたら追記します・・・
Crypto
Caesar Cipher 100pt
フラグの中身がシーザー暗号で暗号化されています。 暗号化されたフラグの中身はfdhvduです。
シーザー暗号さえ知っていれば解ける。各3文字ずつずらすだけ。
nitic_ctf{caesar}
ord_xor 300pt
python読めないけど、問題文からxorしているとわかる。
xorの性質から、もう一度xorすると元の値に戻る
enc_flagにflagとして配布された値を入れて実行する。
import os
flag = "nhtjcZcsfroydRx`rl"
def xor(c: str, n: int) -> str:
temp = ord(c)
for _ in range(n):
temp ^= n
return chr(temp)
enc_flag = "nhtjcZcsfroydRx`rl"
for i in range(len(flag)):
enc_flag += xor(flag[i], i)
with open("./flag", "w") as f:
f.write(enc_flag)
print(enc_flag)
nitic_ctf{ord_xor}
tanitu_kanji 300pt
時間かかりそうでやめた・・・
summeRSA 300pt
これ問題見てなかったけど、今見たら解けそうだな。
eが小さい場合のRSA暗号。時間見つけてやる!
終わりに
初心者向けのCTFだけど、まだまだ一瞬で解けないし、Reversingに至っては初心者レベルでも苦戦するレベルなのがわかった。pythonも勉強しないといけないし。短い時間だったけど初心者向けCTFに参加できて楽しかったです。
Discussion