TDU CTF 2014 Satellite in ConoHa に参加してみた
2015年3月29日に行われたTDUCTFに参加しました。このCTFは初心者向けのCTFということで、気楽に参加させて頂きました。
実はTDUCTFに参加するのは3回目。1回目はmlabCTFという名前での開催で、主にlinuxの触り方を学ぶというCTF形式での開催でした。その後、2回目の開催で学内のTDUCTFになり、今回で外部参加可能なCTFになった感じです。
3回とも参加してますが、今回やっとwriteupを書けるかな~程度に問題を解くことが出来たので自分で振り返れるようにメモを残しておこうと思います。
Q:読めない文字1
文字列の末尾に特徴的な「==」があるのでbase64と推測。プログラミング能力も無い上にLinuxも用意してないのでwebのdecoderに文字列を入れたらFlagが出てきたのでそのままsubmitして終了。
Q:unknown file
問題名の下にあるリンクからfileをDLする。拡張子がないファイルを渡されるのでとりあえずバイナリエディタに投げる(本当はfileコマンドとか使いたいけど環境用意してなかった)。
ダミーバイトでいっぱいだったので根気よく探したら中央付近にFlagがいたのでsubmitしました。見つけた後に検索窓に「TDU」っていれれば早かったなと気づきました。Flagは「TDU{2EDE41D734AD3C925BDF285F950DF0B838F736D4}」
Q:ASCII Art
flag.zipというファイルを渡されるのでとりあえずバイナリエディタに投げる。
マジックナンバー(拡張子フォーマット)がPKに偽装されていたましたがすぐ下にASCIIArtが見えたのでそのまま読み進めてsubmitしました。
Flagは「TDU{HEXEDIT!}」
Q:String_compare
まず問題名がうろ覚えですがこの名前のファイルを渡されるのでIDAで開きます。Strings windowを開いて見るとTDU{~}っていう文字列が見えるのでクリックして関数のとこまで飛びます。Graph viewでみると上のほうに「MinamiKotori」と見えるのでexeを起動して入力画面で「MinamiKotori」と入れるとFlagが手に入ります。
Flagは「TDU{MinamiKotori_is_very_cutie}」
Q:柚子胡椒 Vol.1
bluetooth.pcapというファイルを渡されるので素直にWiresharkで開いてみる。
問題文にPINは何?と聞かれているのでWiresharkのinfoにPIN Codeという文字列があったので見てみるとFlagがありました。
Flagは「TDU{PiNC0De2}」
Q:qso2
問題文の下にあるリンクから飛ぶとログインページがあるので適当に名前を決めてログイン(私はrootユーザでログインしました)。
とりあえずソースコードを読んでみる。用意されているリンクをそれぞれ踏んでみると
「強化する」→表示されている武器のレベルがランダムで上下する模様。
「リセットする」→ログアウトして武器のレベル情報などを破棄してる模様。
「課金する」→nomuken氏に塩50kgを送る事ができる。
強化するとリセットするの2つはURLに値を渡して処理をしているみたいでした。少し気になったのでURLから問題のsubmitページに戻り再度ログインページにいくと、ログイン処理をせずにアイテム強化ページへ飛びました。そこでcookieを見てみると、qso2のドメインでcookieがあるので内容を見ると何やら文字列が。
とりあえずwebのdecoder(http://encodemaniax.com/)に文字列を投げるとbase64でdecode出来ました。cookieの内容は、ユーザー名と武器レベル、良くわからない項目が1つ。とりあえずユーザー名をrootからadminに変更してbase64でencodeしてページを更新したらユーザー名の改変ができました。
後は色々いじってたらFlagがでました。具体的には3つ目の要素の値が0だったのを1にしたら武器強化が成功し続けレベル10の時にFlagが出ました。
Q:EasySQLi Challenge
最初はさっぱりわかなくてしばらく放置していたらHintが出てたので取り掛かりました。sample1と入力すると、なんか出てくるのでSQLが発行されている事が分かります。そこでとにかく色々な特殊な文字列を入力していたところ「"」でエラー文が出ました。エラー文の末尾にorder by ... LIMIT 5 と出たのでぐぐった結果、なんか5個までとかいうふざけた構文なのでコメントアウトします。
よって入力する文字列は「" or "1=1";--」でFlagが出ました。
あとでちょろっと試したところ最初しか「"」を強要してこないので上の場合「" or '1=1';--」でも通りました。
この問題は複数のFlagがあるそうですが、他のFlagは見つけることが出来ませんでした。
Q:SUPER ULTIMATE COOL SECUR NOTING SYSTEM
Nothingですよね...?
運営の徹夜が垣間見れた瞬間かと思います。
リンクから飛ぶとメモ帳として使えるページに飛びます。検索窓に文字列を入れると一致したメモを呼び出してくれるシステムみたいですね。下のほうにログインページがあるので行ってみると、adminでログインしろと言われます。
とりあえず挨拶代わりの「' or '1=1」でログインできたと思います(うろ覚え)。ログインするとFlagが1つ貰えます!スクショに残ってなかったのでこれで勘弁して下さい。
この問題も他にFlagがあるそうですが見つかりませんでした。ダミーFlagは検索窓に「' or '1=1」で3つほど出てきました。
以上私が解いた問題になります。
なにか誤字脱字、鉞などがあれば@sydosy1までリプライでも飛ばして下さいますようお願い申し上げます。
時間があればそのうち、後で解いた問題や、懇親会で解説を聞いた問題等もメモしていきます。
最後に、とても楽しく参加させて頂きました!運営の皆様お疲れ様でした。
また開催予定があるとのことなので喜んで参加させて頂きます。また、受付などであればいくらでも手伝わせて頂きます。