読者です 読者をやめる 読者になる 読者になる

ブログの名前なんて適当で良いのでは

説明を求めるな、記事を読め

April Fools' GTF2017のwriteupと感想

普通の問題は解けないけれど,Guess The Flag力は高いと信じて1人で参加した.
一応,弊チーム運営ではあるが,運営には入っていないので知ってる情報はない感じです.結果は1936点で10位でした.
以下writeupと感想です.

writeup

Welcome

your passwordを打てと言われているのでyour passwordと入力するだけ.これは推測はいらない.

thinking_face

絵文字のこと🤔.これは推測はいらない.

Japanese Contest

日本で1番大きいのはSECCON.これは推測はいらない.

Houses

Heap Exploitation界隈では有名なHouse of なんちゃらシリーズのことだと問題文を読むとわかる.無いのは,@hhc0nullのHouse of Einherjar

Ko-Gyoku

Ko-Gyoku = 紅玉 = Rubyであることは自明. Rubyのアンダースコア難読化を考える.そうすると有名なのに"_“がある.(正直言うとたまたま知っていた)
これのライブラリがあるのだが,なぜかうまく動かない.Fixnumの配列に対してjoinしようとしているというTypeErrorがでてしまう.なので,ライブラリ自体のソースコード でFixnumの配列に対して,

$code = $code.map{|x| x.to_s}

としてあげることで,文字になるので,エラーが取れてFLAGが表示される.

APRCTF{Guess_The_Gem}

MyEncryption

問題ファイルの中身の末尾が}であることからFLAGの末尾だとわかる.ここを除くとファイルサイズは20byteで,なおかつファイル名も20byteなので,これらのXORであることは自明. 余談だが,最初owlinuxで参加していて,おみくじで-500食らったので,最悪なアカウント再作成を行ったのだが,owlinuxではFirst solvedだったっぽい.

# coding: ascii-8bit
fname = "01e24bda2b951c1dc54ac2c89b72381755c295a3".scan(/../)
flag = File.read("01e24bda2b951c1dc54ac2c89b72381755c295a3").force_encoding("ascii-8bit").split("")

result = ""
20.times do |i|
  result << (fname[i].to_i(16) ^ flag[i].ord).chr
end
result << "}"
print result

よって,APRCTF{XOR_IS_SECURE}

test problem

アクセスするとtitleタグに書いてある.

TWGTF{this_is_not_flag_and_there_is_no_more_flag}

Scoreserver

  1. 404なので,パスを間違えてアクセスする APRCTF{Kyoto_Is_In_The_West_Of_Tokyo}

  2. 422なので,パラメータなどを適当な値に変更してアクセスする 422{Tokyo_Is_In_The_East_Of_Kyoto}

感想

あともうちょっとのところで解けそうみたいな感じのがあり,久しぶりに楽しさを感じられた.あまり時間を無駄にしたとは思えなかったので勝ちかもしれない.