WebとNetworkの講習があり、資料や問題としてはBinaryジャンルもありました。
講習では、CTFの問題を解くにあたっての説明や、各種ツールの使い方などを分かり易く説明していただきました。
CTFでは問題を解いたらランプが点灯しブザーが鳴るようになっていたので、ブザーが鳴るたびに焦りました。あとTDUよりは少なかったですが、変な動画も流れました。
さて、この記事ではCTFの方で問題が残っているものや、覚えているもののWriteupをします。
まず、最終のスコアボード:
Other
1:練習問題 (100pt)
ctf4b{〜〜}みたいなのが書いてあるので、そのまま送信します。6:Universal Web Page(笑) (500pt)
php://filterを使うのかと思ったのですが、上手くいかずに諦めました。500ptだからもっと難しいのでしょうが、誰も解けてませんでした。Web
2:Can you login as admin? (100pt)
定番のSQLiで、「' OR '1'='1」をパスワードとして入力するとadminになりました。1番上をadminにしている作者さん優しいです。3:Find the flag (200pt)
どんな問題か忘れました。ディレクトリトラバーサルだったかな?4:1M4G3 V13W3R (300pt)
私の苦手なファイルアップロード問題です。php送ったりタイプをimage/jpegに偽装したりしましたが、できませんでした。ディレクトリトラバーサル等も確認できず、分かりませんでした。5:SQL Injection Level 2 (400pt)
SQLiですが、ORが使えません。ORを削除していると予想して「' OORR '1'='1」を送ったら通りました。ちなみに正攻法はUNION SELECTする方法です。Binary
7:matryoshka (100pt)
問題ファイルはこれです。fileコマンドで種類を調べるとisoだったので、mountでマウントすると、flagというファイルが出てきました。flagはzipだったので解凍すると、またflagが出てきました。これはmicrosoft cabinet的なファイルだったので、linuxのファイルマネージャで開くと、またファイルが出てきました。今度はPNGだったので、見ると、フラグが見つかります。
8:読めますか? (200pt) 【たぶんこんなタイトル】
問題ファイルはこれです。PNGファイルなのですが、Linuxでは開けませんでした。(解説のときはフラグがギリギリ見えない画像が映ってました)中身はぐちゃぐちゃだったので、しばらく悩みましたが、stringsでctfを探すとフラグが見つかりました。9:Jump (300pt)
問題ファイルは後であげます。実行ファイルなのでIDA Proで見ると、argvを確認しているらしき部分がありました。順番に「ctf」「is」「so」「fun」(だったかな?)をチェックしているので、argvだなと思って、引数を指定して起動するとフラグが表示されました。10:Readit (400pt)
アセンブリが渡されて、結果の数字を答える問題。疑似言語みたいなのに訳して、面倒そうだったので飛ばしたら最後までやりませんでした。これです:
mov [ebp+var_4], 0
mov [ebp+var_8], 0
jmp loc_40101F
loc_40101F:
cmp [ebp+var_8], 0C8h
jge short loc_40103C
mov ecx, [ebp+var_4]
add ecx, [ebp+var_8]
mov [ebp+var_4], ecx
mov edx, [ebp+var_4]
sub edx, 0Ah
mov [ebp+var_4], edx
jmp short loc_401016
mov eax, [ebp+var_8]
add eax, 1
mov [ebp+var_8], eax
jmp loc_40101F:
loc_40103C:
mov eax, [ebp+var_4]
push eax
push offset Format ; "%d"
call ds:printf
11:Checkit (500pt)
問題ファイルはこれです。フラグを入力したら正解かを確認するプログラムです。これに時間をとられてしまった上に解けませんでした。丁度このときにタイタニックの笛の動画が流れ始めて、投げ出しました。Network
12:Insecure Protocol (100pt)
問題ファイルはこれです。telnetしてたので、telnetを見ると、フラグが書いてました。13:Insecure Protocol 2 (200pt)
問題ファイル無いです。12番のtelnetと同じですが、フラグの部分が埋められていました。そこで、telnet先のサーバーにtelnetで接続して、パケットから抽出したユーザー名とパスワードを入力するとフラグが返ってきました。14:File Transfer Protocol (300pt)
これも問題ファイル無いです。たしか、FTP-DATAを見たらフラグが見つかったような......。15:This quiz is a NETWORK challenge (400pt)
問題ファイルはこれです。実行すると、しばらくして文字が表示されたので、ネットに接続していると予想し、wiresharkでパケットを取得しました。すると、basic認証でwebからファイルを取得していたので、ブラウザでアクセスしてbasicを認証して、フラグのファイルへアクセスしました。なんと逆解析して難読化されたコードを読んだ猛者もいました。16:Oldies Communication (500pt)
パケットファイルなのですが開けませんでした。ヘッダが壊れていたので、別問題のヘッダを参考に修復して開きました。TCPで何かしているのですが、何をしているのか分からず、フラグもスペースで上書きされていて、IPも存在しなかったので解けませんでした。以上、概要だけですが、writeupでした。
今回、会場に集まるようなCTFはTDUに続き2回目でしたが、好成績を修められてよかったです。とはいえ、SECCONではもっと難しい問題が出るので、まだまだ勉強するつもりです。
お疲れさまでした。