KOSENセキュリティコンテストに出た話
10/21~22に現地会場+リモート参加でKOSENセキュリティコンテスト(以下セキュコン)に参加してきました。
結果はなんともいえない順位+一年生チームに100点差で負けたことにより学生運営や先生方から煽られてるので鬱憤晴らしに僕達が解いた+途中であきた問題をWrite_upしたいと思います
- 00 サンプル
- 01 Binary フラグを答えろ
- 02 ファイル名を探せ
- 03 ボスを倒せ
- 06 Crypto 解凍して解答せよ
- 07 簡単な符号化
- 11 Misc 君(脆弱性)の名は?
- 12 便利なプロトコル
- 13 諜報機関は基本?
- 14 素数を数えろ
- 15 Network 寝坊気味のコンピュータ
- 16 ログインしたいんだ!
- 18 Web ログインせよ
- 21 Web2
00 サンプル
今回出題される問題は、全て答えとなる
「フラグ」が含まれている。フラグは、必ずSCKOSEN{hoge}の形式に
なっている、この問題のフラグはSCKOSEN{Let`s enjoy}である。
入力しろ。
問題の通りにSCKOSEN{Let`s enjoy}と入力したら100点入りました。
そういえば問題が命令系ってなんか興奮しますよね?!
共感者待っております。
01 Binary フラグを答えろ
正しいフラグを書けば正しいかどうかを判定してくれる、便利なアプリを開発した。
フラグを調べて解答せよ
添付ファイルとしてa.outが添付されていました。
これは他のメンバーが解きましたが、catかなんかで機械語をみたりと我々無意味な努力をしていましたが結局見つかることはありませんでした。
偶然SCKOSEN{OOO}って形があったので整理して
SCKOSEN{h1dden_f1ag}
というフラグを見つけました。
ちなみにこれ見つけてから2時間後にクリアしました。なぜかというとチームメイトが入力するときに{}を忘れるというミスをしてしまったからです。
今度彼にラーメンおごってもらおう
02 ファイル名を探せ
フラグは簡単だ、ファイル名に隠した。
添付ファイルにqが添付されていました。
これも他のメンバーが解きましたが、これも中身を探していたら偶然見つかったみたいです。
SCKOSEN{ki_ha_mori_ni_kakuse}
どなたか01も含めて正規のやり方を教えてください(T_T)
03 ボスを倒せ
とあるゲームを見つけたのだが、ボスがあまりに強すぎて一切倒せようにない。どうにか倒す方法はないだろうか。
[nc TDKR@yajyu.com 1919810]
繋いでみたらこんな感じでした。
nc TDKR@yajyu.com 1919810
Input your name: Player's HP: 768
Boss's HP: 12345678
Next round=>
Round 1/10
Player's Attack!
Boss's HP: 12345667 (-11)
Boss's Attack!
Player's HP: 602 (-166)
Next round=>
Round 2/10
Player's Attack!
Boss's HP: 12345658 (-9)
Boss's Attack!
Player's HP: 427 (-175)
Next round=>
Round 3/10
Player's Attack!
Boss's HP: 12345649 (-9)
Boss's Attack!
Player's HP: 252 (-175)
Next round=>
Round 4/10
Player's Attack!
Boss's HP: 12345639 (-10)
Boss's Attack!
Player's HP: 120 (-132)
Next round=>
Round 5/10
Player's Attack!
Boss's HP: 12345630 (-9)
Boss's Attack!
Player's HP: 0 (-121)
You lose
これはクソゲーですね。
適当に入力したら値が溢れるのではないかと思いやっていたらできました!
11111111111111111でいけるとは本当に思っていませんでした。
後から聞いてオーバーフローというのがあったみたいですね。まあ、とにかく点数ゲットでした。
ちなみに倒したら
SCKOSEN{buffer_over_flow!}
がでてきました
06 Crypto 解凍して解答せよ
ファイルからフラグを読み取れ!
これは根性が試された問題でした。
解凍するとxor.pngとmask.pngの2つが入っていました。
これを合わせると文字がうっすら見えるという。
gimp2とか使えばよかったのに絵を書く用のアプリで一生懸命解いていたのでものすごい根性で解いた問題となってしまいました。。。
SCKOSEN{simple_visual_cryptography}
がフラグでした。
07 簡単な符号化
U0NL1NFTntiYXNlNjRfaXNfdmVyeV9lYXN5fQ
base64でデコードでこれ!
SCKOSEN{bae64_is_very_easy}
となりました。やったね!
11 Misc 君(脆弱性)の名は?
名前は何か。SCKOSEN{__}の形で答えよ。
CVE-2017-13077
CVE-2017-13078
CVE-2017-13079
CVE-2017-13080
CVE-2017-13081
CVE-2017-13082
CVE-2017-13084
CVE-2017-13086
CVE-2017-13087
CVE-2017-13088
2017と書いてあるので最近だったのでwpa2とか入力したり調べたりしていたらKRACKsというのが出てきましたので入力してみたら正解でした。
SCKOSEN{KRACKs}
12 便利なプロトコル
DHCPは便利なプロトコルであるが、IP対応機器に対してしかIPアドレスを配布できない問題がある。1998年、この問題を克服した画期的なプロトコルが提案された。
その提案のタイトルをSCKOSEN{__}の形で答えよ。
なお、スペースはアンダースコア(_)に置き換えよ
僕の懲りないgoogle検索で見つかりました。
見つかったのが残り30分のときでした。もっとプロトコルの勉強しようと思いました。
http://www.kt.rim.or.jp/~ksk/joke-RFC/rfc2322j.txt
こちらに書いてありました。
洗濯バサミDHCPですって。。。初めて知りました。
SCKOSEN{Management_of_IP_numbers_by_peg-dhcp}
解けて本当に良かった。。。
13 諜報機関は基本?
情報セキュリティの三要素、SCKOSEN{__}の形で答えよ。
試合開始前に言っていた
「機密性」(Confidentiality)、「完全性」(integrity)、「可用性」(Availability)のことです。
SCKOSEN{CIA}
14 素数を数えろ
7桁で最大の素数をSCKOSEN{__}の形で答えよ。
SCKOSEN{9999991}
15 Network 寝坊気味のコンピュータ
ここにある通信をキャプチャしたファイルがある。この中からフラグを見つけ出せ!
.pcapngのファイルがあったので中身をみてTCPストリームをしてみると
文字が書いてあったのでつなげてみると
SCKOSEN{wake_on_lan_is_alerm}
となって入力したら正解でした!
ちなみにWiresharkを使ったのですがこの大会で初めて使いました(T_T)
解けたときは嬉しかったです!
16 ログインしたいんだ!
ここにある通信をキャプチャしたファイルがある。この中からフラグを見つけ出せ!
先程と同じように覗いてみると
GET / HTTP/1.1
Host: 172.27.132.124
Connection: keep-alive
Authorization: Basic YWRtaW46dGVzdHRlc3R0ZXN0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.102 Safari/537.36 Vivaldi/1.94.971.8
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.8
の中にあるAuthorization: Basic YWRtaW46dGVzdHRlc3R0ZXN0が暗号に見えたのでbase64でデコードしたら狙い通りヒットしました。
admin: SCKOSEN{basic_is_unsecure}とでてきたのでそれを入力して終わりました。
SCKOSEN{basic_is_unsecure}
18 Web ログインせよ
adminとしてログインせよ
ログインするためのURLが添付されていました。
ただこれはSQLインジェクションで叩けばOKでした。
SCKOSEN{sug0-i_ta-n0sh1-}
これは余談ですが、フラグのoを0やiを1に変える人って大体ゲーマーに多いのでお友達になりたいなと思っていましたヾ(@°▽°@
21 Web2
穴埋めクイズみたいな感じのJSプログラムがありました。
これは専門外なので他のチームメイトに解かせてできました。
SCKOSEN{4c0bf259050d08b8982b6ae43ad0f12be03f191
後書き
これが僕達が解けた問題の一覧になります。
なにも知識が浅い状態で意外とできていたので良かったなと思いつつこれからも勉強を頑張ろうと思います。
しかし、学生運営のとくにおのかちおとか先生が「え?一年生に負けたの??????」と煽ってくるので今度襲いかかろうと思います。
悔しさをバネにしっかりと勉強して次の大会ではもっと上位目指して行きたいと思います!!!
それでは失礼します。
やっぱり最後に飯テロしておきます。
#SCKOSEN
— 天才ぽっちゃま (@PotyaExe) 2017年10月20日
木更津からのラーメン部刺客 pic.twitter.com/GfjTco8GTk
#SCKOSEN
— 天才ぽっちゃま (@PotyaExe) 2017年10月20日
運営さん頑張って😄 pic.twitter.com/oeCH1tF2WD
— 天才ぽっちゃま (@PotyaExe) 2017年10月20日
それでは失礼します。
またお会いしたときは是非よろしくお願いします!
チームKEMG ぽっちゃま(KEMGのKの人)