n-knuu's logs

憧れ駆動。だいたい競プロ

CTF for ビギナーズ 2015 滋賀 に参加しました #ctf4b

概要

CTF for ビギナーズ 2015 滋賀に参加しましたctf4b.doorkeeper.jp
楽しかったです(小並感)
ksnctfの問題を解いたりはしていたが、完全に我流だったので、こういう形で教えてもらえたのはよかった。

CTFとは & 倫理

寸止めはだいじ(だいじ)

バイナリ

  1. とりあえずfileコマンドでファイルの種類を見る
    • それでファイルの種類がわかったら、ファイル名に拡張子をつけて開いてみる
  2. stringコマンドで文字列を取り出せないか見てみる
  3. 実行ファイルなら一度実行してみた後、IDA Proを使ってみる
    • 資料に書いてある使い方が分かりやすかった
      • やっぱり運営は神ってはっきりわかんだね
    • 機械語を逆アセンブルしたものを見せてくれる
    • 図がわかりやすい
    • ブレークポイントを設定したり、set IPをすることで分岐を変更したりできる
    • アセンブリ読むのは慣れないと厳しいなあ

ネットワーク

  1. pcapファイルはWiresharkで見てみる
    • pcapファイルはバイナリの冒頭(D4 C3 B2 A1, あるいは ヤテイ。)を見て1秒でわからないとダメ
  2. まず適当なプロトコルでフィルタをかけてみる(http, tcp, ftp, ftp-data, smtpなど)
    • Follow TCP Stream!!!!!!!
  3. 「怪しい」通信を見つける
    • ある程度は慣れと勘っぽい
    • StatisticsのconversationsとかProtocol Hierarchyをみることでわかる
    • 普段からパケットを見て慣れることが重要らしい

CTF本番

問題と解法を覚えている範囲で軽く
ネットワークとバイナリは全てなんらかのファイルが与えられて、そこからflagを見つける方式

  1. misc100 練習問題
    • copy and paste
  2. net100
    • Follow TCP Stream!!!!!!!
  3. net200
    • Follow TCP Streamすると、telnetしてサーバにログインすればいいらしい
    • telnetコマンドをググって調べる
    • Follow TCP Streamにuserとpassは書いてあるけどアドレスが書いてない
    • 解けず
    • アドレスはWiresharkに普通に書いてあるのに気が付かなかった...
  4. net300
    • ftp-dataでフィルタしてみると、3つファイルがあるらしい
    • 2つのファイルでフラグの一部らしき文字列があった
    • つなげると、ctf4b{This_communication_is_encrypted.}
    • とりあえず投げる
      • ダメ
      • まあencryptedだし当たり前か
    • とりあえず残りの1つを保存してfileコマンドしてみると、zipファイルらしい
    • 中身を見てみると_notと書いてある
    • ctf4b{This_communication_is_not_encrypted.}で投げると通った
  5. net400
    • やってない
  6. net500
    • やってない
  7. web100
    • SQL injection
    • ' or 1=1 -- するだけ
  8. web200
    • ページ内にフラグが隠されているらしい
    • とりあえずブラウザの開発ツールを開いてヘッダを見たらフラグがあった
    • 一部の文字がエスケープ文字になってたけど、{}とか?とか!だろと思ってやったら通った
  9. web300
    • 画像アップローダが与えられる
    • 解けず
      • phpファイルでもアップロードするのかと思ってた(php書けないけど)
    • 適当な画像ファイルを開いて、ディレクトリトラバーサルでindex.phpを開くだけだったらしい
  10. web400
    • orを使えないSQL injection
    • 解けず
  11. web500
    • なんかwebサイトが与えられる
    • 解けず
  12. bin100
    • fileするとISOなので拡張子を.isoにして開く
    • 中にあったファイルをfileするとMicrosoft Cabinet archive dataと書いてあってよく分からなかった
    • 解けず
    • Microsoft Cabinet archive dataは.cabなので、拡張子を.cabにして開く
    • 中にあったファイルをfileすると、zipなので拡張子を.zipにして開く
    • 中にあったファイルをfileすると、jpgなので拡張子を.jpgにして開くと画像にフラグが書いてある
  13. bin200
    • pngファイルが与えられる
    • とりあえずstringsすると、grep使えみたいなことが書いてある
    • "ctf"とかでgrepするとフラグが出てきた
  14. bin300
    • 与えられたファイルをfileすると実行ファイルなので、拡張子を.exeに書き直してIDA Proで見る
    • とりあえずwrongへの分岐前にブレークポイントを設定して分岐直後にset ipしてすすめてみたけど何故か実行が中断される
    • 解けず
    • 実はset ipは分岐直後じゃなくてもできる
    • なので、適当にブレークポイントを設定して実行した後、answerのところに直接set ipすればよかったらしい
  15. bin400
    • アセンブリが書いてあるので実行を脳内でやるだけっぽい感じだったけどわからず
  16. bin500
    • やってない

結果

f:id:n_knuu:20151004003108p:plain
頭ついてなかった

まとめ

資料のタイトルが面白かった*1
CTF本を頑張って読もうな

セキュリティコンテストチャレンジブック -CTFで学ぼう! 情報を守るための戦い方-

セキュリティコンテストチャレンジブック -CTFで学ぼう! 情報を守るための戦い方-

俺たちのCTFはこれからだ!

*1:中身はそれ以上