tductf

38
TDU CTF HashTag - #tductf 会場使用上の注意 指定された席付近にお座りください →強制はしません : ) 席に備え付けのLANソケットには接続しないでください! →お近くのハブにLANケーブルを接続してください →外部への接続は無線LANを利用してください 飲食厳禁です! LANケーブル等を借りたい方はスタッフにお声がけを →受付に行けば確実なスタッフに声をかけられます

Upload: nomuken

Post on 20-Jul-2015

403 views

Category:

Engineering


1 download

TRANSCRIPT

Page 1: Tductf

TDU CTFHashTag - #tductf

会場使用上の注意

● 指定された席付近にお座りください →強制はしません : )

● 席に備え付けのLANソケットには接続しないでください!→お近くのハブにLANケーブルを接続してください

→外部への接続は無線LANを利用してください● 飲食厳禁です!● LANケーブル等を借りたい方はスタッフにお声がけを

→受付に行けば確実なスタッフに声をかけられます

Page 2: Tductf

TDU CTFHashTag - #tductf

TDU CTF(の基調講演的なもの)@nomuken (CAFEBABE)

Page 3: Tductf

TDU CTFHashTag - #tductf

Agenda

1. 会場使用上の注意 - 情報メディア学科 学生職員

2. 挨拶的なものとネットワークの確認

3. 統計の紹介

4. 競技の流れ

5. 運営による直前叩き込みLT会

6. 競技場の注意

7. CTF

Page 4: Tductf

TDU CTFHashTag - #tductf

会場使用上の注意 情報メディア学科 学生職員

Page 5: Tductf

TDU CTFHashTag - #tductf

禁止事項

● 飲食厳禁です!

● ゲームなどの娯楽は禁止です!……→時間が余った方はラウンジでゲームを

● 機材の破壊は禁止です!

Page 6: Tductf

TDU CTFHashTag - #tductf

_人人人人人人_> これだけ < ̄Y^Y^Y^Y^Y ̄

Page 7: Tductf

TDU CTFHashTag - #tductf

挨拶的なものとネットワークの確認

Page 8: Tductf

TDU CTFHashTag - #tductf

……ひとまず ようこそ!

● 本日はご参加いただき非常に感謝です!→ぜひとも,楽しんでいただければと思います

● 運営は徹夜明けです

Page 9: Tductf

TDU CTFHashTag - #tductf

ネットワークに接続

● 最も近いハブにLANケーブルで接続してください→多少は人が通行できるようにおねがいします

● 長さが奇しくも足りない方はなんとか無線LANを用意しました

SSID : TDUCTF_kotoriPass : kotorichunchun(接続数は限られているので有線利用にご協力ください)

Page 10: Tductf

TDU CTFHashTag - #tductf

IPアドレスを確認

● Windows

– cmdで「ipconfig /all」● Mac

– terminalで「ifconfig」● Linux

– terminalで「ip addr show」

● IPアドレスが「10.0.39.101~254」であればOK

Page 11: Tductf

TDU CTFHashTag - #tductf

ここまででトラブルはありますか?

● ダメな場合スタッフがお手伝いします→ダメだったらごめんなさい

Page 12: Tductf

TDU CTFHashTag - #tductf

統計の紹介

Page 13: Tductf

TDU CTFHashTag - #tductf

……の前に,参加者使用OSの統計

OSX Windows Linux0

2

4

6

8

10

12

14

16

18

20

Page 14: Tductf

TDU CTFHashTag - #tductf

所感

● やっぱWindowsですよね→推奨がそうですし

Page 15: Tductf

TDU CTFHashTag - #tductf

使用言語

Java Python Ruby C C++ C# Haskell Clojure0

2

4

6

8

10

12

人数

Page 16: Tductf

TDU CTFHashTag - #tductf

所感

● 大学全体的にJavaメインが影響か?→もちろんJavaも今回のCTF では強力なツールになりえます : )

● Ruby,PythonなどのLightweighなのも多い→もちろん(ry

Page 17: Tductf

TDU CTFHashTag - #tductf

競技の流れ

Page 18: Tductf

TDU CTFHashTag - #tductf

スコアサーバによる回答

● サーバー「score.java」から回答

● デモ

Page 19: Tductf

TDU CTFHashTag - #tductf

流れのまとめ

1. スコアサーバーにログイン(サインアップ)

2. 問題を見る

3. 問題を解く

4. 「 TDU{}」の形のflagを見つけ,問題ページのフォームに回答

5. 点数がもらえる

Page 20: Tductf

TDU CTFHashTag - #tductf

運営による直前詰め込みLT

Page 21: Tductf

TDU CTFHashTag - #tductf

楽しいSQLi@nomuken

Page 22: Tductf

TDU CTFHashTag - #tductf

Who am I

● 13なCにいる「JavaにNo bot」→最近不用意に使う人が増えてきて遠慮している

● コンピュータ初心者→コンピュータ上級者の皆様怖い><

● 技術力は無い

● Twitterは@nomuken

Page 23: Tductf

TDU CTFHashTag - #tductf

SQLi ……とは

● SQLというデータにアクセスする命令の抜け穴を狙った攻撃

→特殊な意味を持つ文字を送りつけて誤動作を狙う

● 読み方は「えすきゅーえるいんじぇくしょん」

Page 24: Tductf

TDU CTFHashTag - #tductf

じゃあSQLとは?

● プログラム中で使える表計算ソフトみたいな感じ

● イメージとしては以下のような表をプログラム中からデータのやり取りをできるようにした感じ

id 名前1 13aa012 Miku

2 12bb013 Rin

3 11cc014 Len

Page 25: Tductf

TDU CTFHashTag - #tductf

SQLとは?

● 例えばデータは以下のような命令を使って呼び出すselect * from users;→これはusersというテーブルのデータを取り出す命令

● もしid=13aa012のデータが欲しい場合以下のようにwhereを追加することにより取り出せるselect * from users where id='13aa012';

→これであればidが13aa012のみのデータしか返ってこない

Page 26: Tductf

TDU CTFHashTag - #tductf

例えば,検索システムを実装する

● 言語はどうであれSQLを使って検索システムを作ったとしましょう.

● 「where id='(ユーザーの入力)'」みたいなものを自動的に生成して逐一実行すれば望む結果を得られる

Page 27: Tductf

TDU CTFHashTag - #tductf

……つまり

● こんなプログラムsql=”select * from users where id='”+input+”';”;

result=sql_query(sql);

print(result);

● このように実行すればデータを得られる!

Page 28: Tductf

TDU CTFHashTag - #tductf

……はずだった

● でもこんな入力があったらどうする?

「' or 1=1;--」

select * from users where id='' or 1=1;--';

→1=1は常に真なので,どの文章も引っかかる

→「--」はコメントを表す,つまりその後の文を無効化する

Page 29: Tductf

TDU CTFHashTag - #tductf

……これがユーザ認証だったら

● IDとパスワードで検索して,結果が返ってくればログイン成功とするような設計select * from users where id='<入力>' and password='<入力>';

● IDの欄に「root';--」と入れれば検索に必ず引っかかるしパスワードいらないですよね.

select * from users where id='root';--' and password='';

Page 30: Tductf

TDU CTFHashTag - #tductf

これで不正アクセスが成功

● 正しい設計をするなら,こういう文字列はエスケープするはず「'」→「\'」

● しかし,何も知らない人が作って本当にこの欠陥が発生することがある.

● 今日はこんな感じの問題を用意してるので体験していただければと思います.

Page 31: Tductf

TDU CTFHashTag - #tductf

SQLiの狙い方

● どのSQLを使っているかでどの文字列投げれば良いのか結構変わる.

mysqlでのコメントを表す文字

「#」,「--」,「/* 〜 */」sqliteでのコメントを表す文字

「--」,「/* 〜 */」

→まだあるけど割愛

Page 32: Tductf

TDU CTFHashTag - #tductf

見極め方

● さっきの例を使うなら「#」を入れてどのように動作するか見ると良いかもです.

Page 33: Tductf

TDU CTFHashTag - #tductf

終わり

● ……もっと話すといろいろあるのですがこの辺で終わりにしたいと思いまする

Page 34: Tductf

TDU CTFHashTag - #tductf

競技場の注意

Page 35: Tductf

TDU CTFHashTag - #tductf

競技にあたって

● スコアサーバー等へのブルートフォースアタックは禁止→問題等で許可されていたらOKです

● 他の参加者と相談は禁止→つまらなくなっちゃいますよね?

→運営にはじゃんじゃん質問しまくっていいです : )

Page 36: Tductf

TDU CTFHashTag - #tductf

競技にあたって

● 不用意な通信に注意→CTFで使用しているソフト(特にWireShark)などは終了してから大学のネットにつなごう

● 参加者への攻撃は厳禁→物理もダメ

● スコアサーバーに攻撃は絶対禁止

→それは本質じゃない

Page 37: Tductf

TDU CTFHashTag - #tductf

競技にあたって

● 問題が難しすぎる?→運営にヒントを求めてください

● 精神的にズタボロ?→がんばれ♡がんばれ♡

Page 38: Tductf

TDU CTFHashTag - #tductf

Any question....

● スコアサーバー→http://score.java/

● WiFiの情報

→SSID:TDUCTF_kotori Pass:kotorichunchun

● 問題のオープンとクローズ

→14:00 ~18:00