- IGGG企画の内部勉強会
- CTFで体験してみよう!ぐらいのノリ
- 私自身もほぼ初心者というコトに注意
- 要するに楽しかったから広めたいぐらいの気持ち
- Capture The Flag の略称
- セキュリティ系のコンテスト
- 知恵と技術を駆使して情報(Flag)を手に入れる
- 詳しくは以下
- CTF の種類の1つ(2つ中)
- 様々な種類の問題を解く
- Reversing(binary) : バイナリ解析
- Exploit(pwn) : プログラムの脆弱性を突く
- Web : Webサイトの脆弱性を突く
- Network : パケット解析
- Crypto : 暗号解読
- Forensics : ディスクイメージなどの解析
- Stegano : 音声や画像を解析
- PPC : プロコンライク
- Trivia : クイズ
- Recon : ネットストーキング
- Misc : その他
- ポイントの高いチームの勝ち
- 多種多様な知識
- プログラミング力
- インタプリタ式の言語が使えるといいかも
- Python (参考)
- Ruby (参考)
- (Haskell? (参考))
- でも正直いろんな言語を使い分けれた方が...
- 様々なツールを使う
- インストールに抵抗を持ってはいけない...
- まとめてるサイトがそこそこある
- Google Power !
- 与えられたバイナリ(実行ファイルなど)を解析してFLAGを探す
- アセンブラの知識
- 解析ツールの知識
- file, strings, objdump コマンドなど
- バイナリエディタ(Stirling など)
- デバッグツール(IDA Pro など)
- 難しい問題はかなり根性らしい
配布されるファイル例
- 何故か開けないので
file
コマンドをすると...
$ file iggg.zip
iggg.zip: PNG image data, 592 x 592, 8-bit/color RGBA, non-interlaced
- PNGにリネームしてみてみる
- しかしフラグは見当たらないので
strings
コマンドをしてみると...
$ strings iggg.png | grep FLAG
FLAG{example}
- プログラム(サーバー)の脆弱性をついてFLAGを得る
- サーバーの裏で動いてるプログラムなんかが渡される
- プログラムやコードを解析して脆弱性を探す
- スタックオーバーフローとか
- 脆弱性に関する知識
- どのようなコードを書いてると何の脆弱性が生じるかとか
- 勉強中
- Webサイトの脆弱性を突いてFLAGを得る
- SQLインジェクションとか
- 超簡単なのだとサイトのコードを見るだけとか...
- ブラウザのディベロッパーツール(F12)
- Javascript, html, css なんかを読めないと...
- ネットワークに関する知識も(Cookieとか)
- 苦手
- パケットを解析してFLAGをゲット
- よくpcapファイルが配られる
- pcapファイルはWiresharkというツールを使う
- 通信技術の知識(UDPとか)
- テキストやデータを暗号解読してFLAGを得る
- 現代暗号はもちろん(RSA, base64, ハッシュ etc)
- 古典暗号も豊富(換字式, エニグマ etc)
- 暗号理論系でないのも...(キー配列, 手書き, 数学)
- なので知識+発想力
- あと、プログラミングもできないと
RkxBR3tleGFtcGxlfQ==
- 末尾に
=
がある
- Base64な気がする
>>> import base64
>>> base64.b64decode('RkxBR3tleGFtcGxlfQ==')
'FLAG{example}'
- データ(ディスクイメージなど)の中のFLAGを探し出す
- ファイル形式をよく知っていたり
- 解析手法を知っていたりしないと
- 簡単なのだと
strings
や grep
するだけとか
- 意外と 7z とかでいけたりする
- 音声や画像を解析してFLAGを探す
- 音声だと波形が文字になってたり
- 実はモールス信号が混ざってたり
- ノイズを除去して情報を取り出したりする
- 画像だと超拡大したり
- RGB値をいじったりする
- QRコードの復元もこれに近いかしら
- 意外と便利なツールが多い
- Professional Programming and Coding
- 競技プログラミングに近い
- だけど別にコードを提出するわけではないよ
- 単体と言うよりはCryptoと混ざってたりする
- クイズ
- 例:シェルスクリプトの先頭行によくある
#!
の名前は?(ans)
- use Google power !
- インターネットを駆使して指定された人物の情報を取得してくる
- むずい
- use Google power !
- 常設CTFで遊ぼう !
- Write up を読もう !
CTF Write-up
で検索
- なんか Github がある CTFs
- Onlineの大会に出てみよう !