CyberRebeat CTF Write-up
概要
生活習慣崩壊ズとして出ました 全完して同率1位でした
先に↓のチームメンバーのWrite-upを読むことをおすすめします keymoon.hatenablog.com
僕が解いたのは6問でやるだけ問題を除くと実質2問+αでした ↑zohe君が解いた問題をぼくとkeymoonがそれぞれ1つずつ代理で提出しています(どちらともBinary) 以下に解いた問題を載せます(解いた順、ジャンルの右の数字はdifficulty)
Write-up
Readme(Misc, 100)
上の画像が与えられます ぐっと睨んで感じるとflagが出ます(コツは日本語を忘れることです)
Secret.pdf(Stegano, 10)
黒塗り部分があるpdfファイルが与えられます Ctrl+A Ctrl+C Ctrl+V
Whitepage(Web, 10)
<form action="index.php" method="post"> <input type="text" name="id" style="visibility:hidden" /> <input type="text" name="password" style="visibility:hidden" /> <button>LOGIN</button> </form>
このままだと入力フォームが見えないのでhtmlを書き換えましょう 最初出題ミスでidが"Hiro"じゃなくて"Hero"になっていた 少し時間を溶かされた
Alpha(Stegano, 100)
GIMPで
えいw
Uploader(Web, 100)
ファイルの検索ページが与えられます
適当に試すとSQL Injectionっぽいです URLとエラーメッセージからSQLite3っぽいことが分かります 定番の
' OR 1=1;
を試すと
secret.zipが出てきます これを落としてunzipするとパスワードを要求されます guestでログインするとsamle.zipのパスワードが表示されることから、haradaでログインしてパスワードを表示させたくなります これにはharadaの(アカウントの)パスワードが欲しくなります 最初えかすどがBlind SQL Injectionっぽいと言っていてテーブル名がほしいと言われたので頑張ります これはSQLiteのマスターテーブルの情報を検索結果の後につけてあげると通って、
' union select name, sql from sqlite_master --";
としてあげると
と言われるので0でパディングしてあげます
' union select name, sql, 0, 0 from sqlite_master --";
とすると
とテーブル名とCREATE TABLEしたときの情報が見れます ここで冷静に考えるとテーブル名を取る要領でUsersの情報が取れそうなことが分かるので、
' union select userid, password, 0, 0 from Users --";
としてあげるとパスワードが
出てくるのでログインするとzipのパスワードが分かります 解凍すると平文のflagが出てきます (SQL Injectionの問題を初めて解くことが出来たのですごく嬉しかった)
FLAG.encrypted(Crypto, 200)
とりあえず暗号文と公開鍵を見てみます 暗号文は特に特徴は無いですが、公開鍵をopenssl public-key.pemとかして出してみると明らかにeの値が大きいことが分かります ググるとeの値が極端に小さいor大きい時に使えるWiener's attackというものが出てきます
GitHubにサンプルがあるので落とします 適当に書き換えてあげるとdが出てきます あとはpow(C, d, n)とすると出てきます 最初暗号文を取り違えていてつらかった
番外編
f31337(Binary, 200)
99%zoheが解きます ただ出てきたflagが不正解になるので見てみます
CRCTF{y0ur_m4chine_1s_v3ry_f3st!!}
天才なので見た瞬間に'f3st'の違和感に気づきます まあダメ元で出してみるかと思い
CRCTF{y0ur_m4chine_1s_v3ry_f4st!!}
としてあげると通ります
Signature(Crypto, 200)
問題文を見ます PHP AND md5という検索クエリを脳に投げるとあんぐすとろむCTFでsei0oプロが解いていた問題を思い出したのでWrite-up
を見ます ただし問題が全く異なっていたので関係なくて悲しいな〜と思いながら眺めていると "cryptoをちょくちょく学んでいたためか伸長攻撃かな?と一瞬思ったが、そもそもハッシュが与えられないのでそれは違った。" という1文を見つけます これをチームメンバーに投げて少し考えて2時間ほど寝るとチームメンバーが解きます
感想
- 問題が基本的に簡単なのが100%原因ではあるけどプロのチームと同じ順位ですごく嬉しい
- 解いている問題が被る(特にkeymoon 死んで詫びるつもりは無いけどごめんなさい)ことはあったけどいい感じに協力しつつ解けてよかった 特にぼくのWrite-upの最後の4問は本当にチームワークだった(f31337は違うけど)
- PPCをえかすどがすぐ倒してzoheがRevを一人で倒してkeymoonもSignature以外は一人で回答数が少ない問題を倒しまくっててこわかった チームを追い出されないように頑張りたい
- sei0oを崇めよ