CTF初心者ですがSECCON Beginnersに参加しました。 結果は見る気もなかったのでみてないけど、4問解けたうちの1問はflagを入力した時には時間がすぎてたので成功したけど点数にはならなかった。
解けた問題
-
misc Welcome
-
Web Ramen
-
Reversing Seccompare
-
Web katsudon
- misc Welcome
SECCON Beginners CTFのIRCチャンネルで会いましょう。 IRC: freenode.net #seccon-beginners-ctf
freenode.netで検索し、chatでニックネームとチャット名にseccon-beginners-ctfと入力し、connect
#seccon-beginners-ctf:競技に関する質問等はこちらで受けますFLAG:ctf4b {welcome_to_seccon_beginners_ctf}
- Web Ramen
ラーメン https://ramen.quals.beginners.seccon.jp
URLにアクセスすると usernameを入力するころがある
SQLで引っ張ってきている
sqlインジェクションが刺さるか確認 union select の確認
ささったがテーブル名も項目名もわからないのでとりあえず表示
UNION SELECT table_name, column_name from information_schema.columns #
flagという文字列で検索すると
flagテーブルのflagにflagがありそう union select でflagを連結
ctf4b{a_simple_sql_injection_with_union_select}
- Reversing Seccompare
ltraceを使うと1発で出てくる
ltrace ./doseccompare hoge strcmp("ctf4b{5tr1ngs_1s_n0t_en0ugh}", "hoge") = -5 puts("wrong"wrong ) = 6 +++ exited (status 0) +++
※別解
hexdump -C seccompare
をして眺めていると
いらない文字を消していく
ctf4b{5tr1ngs_1s_n0t_en0ugh}
- Web katsudon
Rails 5.2.1で作られたサイトです。 https://katsudon.quals.beginners.seccon.jp クーポンコードを復号するコードは以下の通りですが、まだ実装されてないようです。 フラグは以下にあります。https://katsudon.quals.beginners.seccon.jp/flag # app/controllers/coupon_controller.rb class CouponController < ApplicationController def index end def show serial_code = params[:serial_code] @coupon_id = Rails.application.message_verifier(:coupon).verify(serial_code) end end
Railsがわからないし諦めようとしたが、これ以外に他に解けそうな問題がなかったためダメ元で色々やってみた( ・∇・)
/flagにアクセスしたら文字がでてくる
BAhJIiVjdGY0YntLMzNQX1kwVVJfNTNDUjM3X0szWV9CNDUzfQY6BkVU--0def7fcd357f759fe8da819edd081a3a73b6052a
店舗一覧ページにて
レストラン昭和 デリバリー可能 シリアルコード: BAhJIhRyZXN0YXVyYW50c2hvd2EGOgZFVA==--a78497e11151cffc45af945a1a243138b6084140
とあるので「--」の前はbase64だと推測 /flagの文字列の「--」の前の部分だけをbase64でデコード
echo 'BAhJIiVjdGY0YntLMzNQX1kwVVJfNTNDUjM3X0szWV9CNDUzfQY6BkVU' | base64 -d I"%ctf4b{K33P_Y0UR_53CR37_K3Y_B453}:ET%
ctf4b{K33P_Y0UR_53CR37_K3Y_B453}
面白かったけどバイナリ関係弱すぎて辛い_:(´ཀ`」 ∠): 来年も楽しみにしてます!