CTF for Beginners in 長野 Write up
CTF for Beginners in 長野 CTF Write up
2017/05/27(土) 株式会社電算にてCTF for Beginersが開催され、参加してきました!
もっとも驚いたのは、運営のほとんどの方が学生だったこと。
院試を控えていたり、卒論発表を控えながらも準備をしてくださったそうです。
圧倒的感謝!
さて、本題。
CTFのWriteupを思い出せる限り書いていきます。
1.練習問題
問題を開くとフラグが表示され、送ればOK。
まぁ、接続確認って感じです。
2.てけいさん for ビギナーズ
100問の簡単な計算を行います。
間違えるとカウントが0に戻るので大変でした。
解説で即興のプログラミングできるか確認する問題だったとのこと。
確かにてけいさんで2000問とか来たらやってらんないですね。
3.for100
もらったパケットをwiresharkで開くとこんな感じ
何となしにhttpでフィルタリングしてみる。
なんか「flag(n).html」がいっぱいある。。。
一つ一つのTCPStreamを確認するとフラグが取れる。
4.for200
与えられたパケットwiresharkで開いて「http」でフィルタリングすると、「hidden.zip」とかいう怪しいファイルを発見。
Export Objectsでzipファイルを取得してみる。
unzipしてみるけど、zipファイルが壊れているとのこと。
、、、結論から言うと解けませんでした。
CTF後の解説によると、このzipファイルにパスワードがかかっており、そのパスワードを探すらしいです。
zipファイルの取得の仕方を間違えたのかもしれないので、この後いろいろ試してみようと思う。
5.for300
与えられたzipをunzipしようとするとエラーが出るので、binwalkで展開してみる。
展開すると「0.zip」、「3.bin」の二つのファイルが展開される。
stringsコマンドで3.binを見てみると「sercret.docx」という怪しいファイルが見える。。。
ここから先がどうにもできず、フラグを取れませんでした。
6.bin100
与えられたファイルを実行してみると、フラグは取れないよーと言われた。
とりあえずstringsコマンドで見てみる。
そしたら、あっさりフラグが見つかりました。
7.bin200
Flagは「ctf4b{<Stage1>_<Stage2>}」とのこと。
まぁ、アセンブリを呼んできましょう。
、、、だけなんですが、勉強不足もあり正解のフラグが取得できませんでした。
8.bin200_2
与えられたファイルを実行しても、fileコマンドで確認してもなかなか糸口が見つけられませんでした。
資料を確認してやり直してみます。
9.bin300
与えられたファイルを実行してみると、Flagの入力を求められます。
しかし、時間がなかったためこの問題はほとんど手付かずでした。。。
10.web100
どんな問題だったか忘れてしまいましたが、解けました。
11.web200
これもどんな問題だったか忘れてしましたが、解けました。
12.web300
ディレクトリトラバーサルとSQLInjectionの合わせ技。
ディレクトリトラバーサルでlogin.phpの中身を見るところまではできたのですが、インジェクションがうまくいきませんでした。
最終的にSQLInjectionを行うSql文は以下の通り、、、だった気がする。
「SELECT username, password FROM users WHERE username= ('{$_GET["username"]}') AND password = ('{$_GET["password"]}')」
「()」があるのでつじつまが合うようにしてあげればOK。
まとめ
以上が自分ができたところまでのWriteupになります。
非常に充実した時間を過ごすことが出来ました。
今後もCTFを続けていこうというモチベーションを上げることが出来ました。
最後に、運営の皆様お疲れさまでした!