TDU CTF
HashTag - #tductf
会場使用上の注意
●
指定された席付近にお座りください
→強制はしません : )
●
席に備え付けのLANソケットには接続しないでください!
→お近くのハブにLANケーブルを接続してください
→外部への接続は無線LANを利用してください
●
飲食厳禁です!
●
LANケーブル等を借りたい方はスタッフにお声がけを
→受付に行けば確実なスタッフに声をかけられます
TDU CTF
HashTag - #tductf
TDU CTF(の基調講演的なもの)
@nomuken (CAFEBABE)
TDU CTF
HashTag - #tductf
Agenda
1. 会場使用上の注意 - 情報メディア学科 学生職員
2. 挨拶的なものとネットワークの確認
3. 統計の紹介
4. 競技の流れ
5. 運営による直前叩き込みLT会
6. 競技場の注意
7. CTF
TDU CTF
HashTag - #tductf
会場使用上の注意
情報メディア学科 学生職員
TDU CTF
HashTag - #tductf
禁止事項
●
飲食厳禁です!
●
ゲームなどの娯楽は禁止です!
……→時間が余った方はラウンジでゲームを
●
機材の破壊は禁止です!
TDU CTF
HashTag - #tductf
_人人人人人人_
> これだけ <
 ̄Y^Y^Y^Y^Y ̄
TDU CTF
HashTag - #tductf
挨拶的なものとネットワークの確認
TDU CTF
HashTag - #tductf
……ひとまず ようこそ!
●
本日はご参加いただき非常に感謝です!
→ぜひとも,楽しんでいただければと思います
●
運営は徹夜明けです
TDU CTF
HashTag - #tductf
ネットワークに接続
●
最も近いハブにLANケーブルで接続してください
→多少は人が通行できるようにおねがいします
●
長さが奇しくも足りない方はなんとか無線LANを用意しました
SSID : TDUCTF_kotori
Pass : kotorichunchun
(接続数は限られているので有線利用にご協力ください)
TDU CTF
HashTag - #tductf
IPアドレスを確認
●
Windows
– cmdで「ipconfig /all」
●
Mac
– terminalで「ifconfig」
●
Linux
– terminalで「ip addr show」
●
IPアドレスが「10.0.39.101~254」であればOK
TDU CTF
HashTag - #tductf
ここまででトラブルはありますか?
●
ダメな場合スタッフがお手伝いします
→ダメだったらごめんなさい
TDU CTF
HashTag - #tductf
統計の紹介
TDU CTF
HashTag - #tductf
……の前に,参加者使用OSの統計
OSX Windows Linux
0
2
4
6
8
10
12
14
16
18
20
TDU CTF
HashTag - #tductf
所感
●
やっぱWindowsですよね
→推奨がそうですし
TDU CTF
HashTag - #tductf
使用言語
Java Python Ruby C C++ C# Haskell Clojure
0
2
4
6
8
10
12
人数
TDU CTF
HashTag - #tductf
所感
●
大学全体的にJavaメインが影響か?
→もちろんJavaも今回のCTFでは強力なツールになりえます : )
●
Ruby,PythonなどのLightweighなのも多い
→もちろん(ry
TDU CTF
HashTag - #tductf
競技の流れ
TDU CTF
HashTag - #tductf
スコアサーバによる回答
●
サーバー「score.java」から回答
●
デモ
TDU CTF
HashTag - #tductf
流れのまとめ
1. スコアサーバーにログイン(サインアップ)
2. 問題を見る
3. 問題を解く
4. 「 TDU{}」の形のflagを見つけ,問題ページのフォームに回答
5. 点数がもらえる
TDU CTF
HashTag - #tductf
運営による直前詰め込みLT
TDU CTF
HashTag - #tductf
楽しいSQLi
@nomuken
TDU CTF
HashTag - #tductf
Who am I
●
13なCにいる「JavaにNo bot」
→最近不用意に使う人が増えてきて遠慮している
● コンピュータ初心者
→コンピュータ上級者の皆様怖い><
● 技術力は無い
●
Twitterは@nomuken
TDU CTF
HashTag - #tductf
SQLi ……とは
●
SQLというデータにアクセスする命令の抜け穴を狙った攻撃
→特殊な意味を持つ文字を送りつけて誤動作を狙う
●
読み方は「えすきゅーえるいんじぇくしょん」
TDU CTF
HashTag - #tductf
じゃあSQLとは?
●
プログラム中で使える表計算ソフトみたいな感じ
●
イメージとしては以下のような表をプログラム中からデータの
やり取りをできるようにした感じ
id 名前
1 13aa012 Miku
2 12bb013 Rin
3 11cc014 Len
TDU CTF
HashTag - #tductf
SQLとは?
●
例えばデータは以下のような命令を使って呼び出す
select * from users;
→これはusersというテーブルのデータを取り出す命令
●
もしid=13aa012のデータが欲しい場合以下のようにwhereを追
加することにより取り出せる
select * from users where id='13aa012';
→これであればidが13aa012のみのデータしか返ってこない
TDU CTF
HashTag - #tductf
例えば,検索システムを実装する
●
言語はどうであれSQLを使って検索システムを作ったとしま
しょう.
●
「where id='(ユーザーの入力)'」みたいなものを自動的に生成
して逐一実行すれば望む結果を得られる
TDU CTF
HashTag - #tductf
……つまり
●
こんなプログラム
sql=”select * from users where id='”+input+”';”;
result=sql_query(sql);
print(result);
●
このように実行すればデータを得られる!
TDU CTF
HashTag - #tductf
……はずだった
●
でもこんな入力があったらどうする?
「' or 1=1;--」
select * from users where id='' or 1=1;--';
→1=1は常に真なので,どの文章も引っかかる
→「--」はコメントを表す,つまりその後の文を無効化する
TDU CTF
HashTag - #tductf
……これがユーザ認証だったら
●
IDとパスワードで検索して,結果が返ってくればログイン成功
とするような設計
select * from users where id='<入力>' and password='<入力>';
●
IDの欄に「root';--」と入れれば検索に必ず引っかかるしパス
ワードいらないですよね.
select * from users where id='root';--' and password='';
TDU CTF
HashTag - #tductf
これで不正アクセスが成功
● 正しい設計をするなら,こういう文字列はエスケープするはず
「'」→「'」
● しかし,何も知らない人が作って本当にこの欠陥が発生するこ
とがある.
● 今日はこんな感じの問題を用意してるので体験していただけれ
ばと思います.
TDU CTF
HashTag - #tductf
SQLiの狙い方
●
どのSQLを使っているかでどの文字列投げれば良いのか結構変
わる.
mysqlでのコメントを表す文字
「#」,「--」,「/* 〜 */」
sqliteでのコメントを表す文字
「--」,「/* 〜 */」
→まだあるけど割愛
TDU CTF
HashTag - #tductf
見極め方
●
さっきの例を使うなら「#」を入れてどのように動作するか見
ると良いかもです.
TDU CTF
HashTag - #tductf
終わり
●
……もっと話すといろいろあるのですがこの辺で終わりにした
いと思いまする
TDU CTF
HashTag - #tductf
競技場の注意
TDU CTF
HashTag - #tductf
競技にあたって
●
スコアサーバー等へのブルートフォースアタックは禁止
→問題等で許可されていたらOKです
●
他の参加者と相談は禁止
→つまらなくなっちゃいますよね?
→運営にはじゃんじゃん質問しまくっていいです : )
TDU CTF
HashTag - #tductf
競技にあたって
●
不用意な通信に注意
→CTFで使用しているソフト(特にWireShark)などは終了して
から大学のネットにつなごう
●
参加者への攻撃は厳禁
→物理もダメ
●
スコアサーバーに攻撃は絶対禁止
→それは本質じゃない
TDU CTF
HashTag - #tductf
競技にあたって
●
問題が難しすぎる?
→運営にヒントを求めてください
●
精神的にズタボロ?
→がんばれ♡がんばれ♡
TDU CTF
HashTag - #tductf
Any question....
●
スコアサーバー
→http://score.java/
●
WiFiの情報
→SSID:TDUCTF_kotori Pass:kotorichunchun
●
問題のオープンとクローズ
→14:00 ~18:00

Tductf

  • 1.
    TDU CTF HashTag -#tductf 会場使用上の注意 ● 指定された席付近にお座りください →強制はしません : ) ● 席に備え付けのLANソケットには接続しないでください! →お近くのハブにLANケーブルを接続してください →外部への接続は無線LANを利用してください ● 飲食厳禁です! ● LANケーブル等を借りたい方はスタッフにお声がけを →受付に行けば確実なスタッフに声をかけられます
  • 2.
    TDU CTF HashTag -#tductf TDU CTF(の基調講演的なもの) @nomuken (CAFEBABE)
  • 3.
    TDU CTF HashTag -#tductf Agenda 1. 会場使用上の注意 - 情報メディア学科 学生職員 2. 挨拶的なものとネットワークの確認 3. 統計の紹介 4. 競技の流れ 5. 運営による直前叩き込みLT会 6. 競技場の注意 7. CTF
  • 4.
    TDU CTF HashTag -#tductf 会場使用上の注意 情報メディア学科 学生職員
  • 5.
    TDU CTF HashTag -#tductf 禁止事項 ● 飲食厳禁です! ● ゲームなどの娯楽は禁止です! ……→時間が余った方はラウンジでゲームを ● 機材の破壊は禁止です!
  • 6.
    TDU CTF HashTag -#tductf _人人人人人人_ > これだけ <  ̄Y^Y^Y^Y^Y ̄
  • 7.
    TDU CTF HashTag -#tductf 挨拶的なものとネットワークの確認
  • 8.
    TDU CTF HashTag -#tductf ……ひとまず ようこそ! ● 本日はご参加いただき非常に感謝です! →ぜひとも,楽しんでいただければと思います ● 運営は徹夜明けです
  • 9.
    TDU CTF HashTag -#tductf ネットワークに接続 ● 最も近いハブにLANケーブルで接続してください →多少は人が通行できるようにおねがいします ● 長さが奇しくも足りない方はなんとか無線LANを用意しました SSID : TDUCTF_kotori Pass : kotorichunchun (接続数は限られているので有線利用にご協力ください)
  • 10.
    TDU CTF HashTag -#tductf IPアドレスを確認 ● Windows – cmdで「ipconfig /all」 ● Mac – terminalで「ifconfig」 ● Linux – terminalで「ip addr show」 ● IPアドレスが「10.0.39.101~254」であればOK
  • 11.
    TDU CTF HashTag -#tductf ここまででトラブルはありますか? ● ダメな場合スタッフがお手伝いします →ダメだったらごめんなさい
  • 12.
    TDU CTF HashTag -#tductf 統計の紹介
  • 13.
    TDU CTF HashTag -#tductf ……の前に,参加者使用OSの統計 OSX Windows Linux 0 2 4 6 8 10 12 14 16 18 20
  • 14.
    TDU CTF HashTag -#tductf 所感 ● やっぱWindowsですよね →推奨がそうですし
  • 15.
    TDU CTF HashTag -#tductf 使用言語 Java Python Ruby C C++ C# Haskell Clojure 0 2 4 6 8 10 12 人数
  • 16.
    TDU CTF HashTag -#tductf 所感 ● 大学全体的にJavaメインが影響か? →もちろんJavaも今回のCTFでは強力なツールになりえます : ) ● Ruby,PythonなどのLightweighなのも多い →もちろん(ry
  • 17.
    TDU CTF HashTag -#tductf 競技の流れ
  • 18.
    TDU CTF HashTag -#tductf スコアサーバによる回答 ● サーバー「score.java」から回答 ● デモ
  • 19.
    TDU CTF HashTag -#tductf 流れのまとめ 1. スコアサーバーにログイン(サインアップ) 2. 問題を見る 3. 問題を解く 4. 「 TDU{}」の形のflagを見つけ,問題ページのフォームに回答 5. 点数がもらえる
  • 20.
    TDU CTF HashTag -#tductf 運営による直前詰め込みLT
  • 21.
    TDU CTF HashTag -#tductf 楽しいSQLi @nomuken
  • 22.
    TDU CTF HashTag -#tductf Who am I ● 13なCにいる「JavaにNo bot」 →最近不用意に使う人が増えてきて遠慮している ● コンピュータ初心者 →コンピュータ上級者の皆様怖い>< ● 技術力は無い ● Twitterは@nomuken
  • 23.
    TDU CTF HashTag -#tductf SQLi ……とは ● SQLというデータにアクセスする命令の抜け穴を狙った攻撃 →特殊な意味を持つ文字を送りつけて誤動作を狙う ● 読み方は「えすきゅーえるいんじぇくしょん」
  • 24.
    TDU CTF HashTag -#tductf じゃあSQLとは? ● プログラム中で使える表計算ソフトみたいな感じ ● イメージとしては以下のような表をプログラム中からデータの やり取りをできるようにした感じ id 名前 1 13aa012 Miku 2 12bb013 Rin 3 11cc014 Len
  • 25.
    TDU CTF HashTag -#tductf SQLとは? ● 例えばデータは以下のような命令を使って呼び出す select * from users; →これはusersというテーブルのデータを取り出す命令 ● もしid=13aa012のデータが欲しい場合以下のようにwhereを追 加することにより取り出せる select * from users where id='13aa012'; →これであればidが13aa012のみのデータしか返ってこない
  • 26.
    TDU CTF HashTag -#tductf 例えば,検索システムを実装する ● 言語はどうであれSQLを使って検索システムを作ったとしま しょう. ● 「where id='(ユーザーの入力)'」みたいなものを自動的に生成 して逐一実行すれば望む結果を得られる
  • 27.
    TDU CTF HashTag -#tductf ……つまり ● こんなプログラム sql=”select * from users where id='”+input+”';”; result=sql_query(sql); print(result); ● このように実行すればデータを得られる!
  • 28.
    TDU CTF HashTag -#tductf ……はずだった ● でもこんな入力があったらどうする? 「' or 1=1;--」 select * from users where id='' or 1=1;--'; →1=1は常に真なので,どの文章も引っかかる →「--」はコメントを表す,つまりその後の文を無効化する
  • 29.
    TDU CTF HashTag -#tductf ……これがユーザ認証だったら ● IDとパスワードで検索して,結果が返ってくればログイン成功 とするような設計 select * from users where id='<入力>' and password='<入力>'; ● IDの欄に「root';--」と入れれば検索に必ず引っかかるしパス ワードいらないですよね. select * from users where id='root';--' and password='';
  • 30.
    TDU CTF HashTag -#tductf これで不正アクセスが成功 ● 正しい設計をするなら,こういう文字列はエスケープするはず 「'」→「'」 ● しかし,何も知らない人が作って本当にこの欠陥が発生するこ とがある. ● 今日はこんな感じの問題を用意してるので体験していただけれ ばと思います.
  • 31.
    TDU CTF HashTag -#tductf SQLiの狙い方 ● どのSQLを使っているかでどの文字列投げれば良いのか結構変 わる. mysqlでのコメントを表す文字 「#」,「--」,「/* 〜 */」 sqliteでのコメントを表す文字 「--」,「/* 〜 */」 →まだあるけど割愛
  • 32.
    TDU CTF HashTag -#tductf 見極め方 ● さっきの例を使うなら「#」を入れてどのように動作するか見 ると良いかもです.
  • 33.
    TDU CTF HashTag -#tductf 終わり ● ……もっと話すといろいろあるのですがこの辺で終わりにした いと思いまする
  • 34.
    TDU CTF HashTag -#tductf 競技場の注意
  • 35.
    TDU CTF HashTag -#tductf 競技にあたって ● スコアサーバー等へのブルートフォースアタックは禁止 →問題等で許可されていたらOKです ● 他の参加者と相談は禁止 →つまらなくなっちゃいますよね? →運営にはじゃんじゃん質問しまくっていいです : )
  • 36.
    TDU CTF HashTag -#tductf 競技にあたって ● 不用意な通信に注意 →CTFで使用しているソフト(特にWireShark)などは終了して から大学のネットにつなごう ● 参加者への攻撃は厳禁 →物理もダメ ● スコアサーバーに攻撃は絶対禁止 →それは本質じゃない
  • 37.
    TDU CTF HashTag -#tductf 競技にあたって ● 問題が難しすぎる? →運営にヒントを求めてください ● 精神的にズタボロ? →がんばれ♡がんばれ♡
  • 38.
    TDU CTF HashTag -#tductf Any question.... ● スコアサーバー →http://score.java/ ● WiFiの情報 →SSID:TDUCTF_kotori Pass:kotorichunchun ● 問題のオープンとクローズ →14:00 ~18:00