グリーン免許エンジニアのNotepad

エンジニアの免許を取得したてのほやほやエンジニアが作るNotepadです。Notepad(メモ帳)以上のことは書けません。

SECCON Beginners 2019 Write-up

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にアクセスすると f:id:tawatino:20190528105228p:plain usernameを入力するころがある

SQLで引っ張ってきている

sqlインジェクションが刺さるか確認 f:id:tawatino:20190528105910p:plain union select の確認 f:id:tawatino:20190528110009p:plain

ささったがテーブル名も項目名もわからないのでとりあえず表示

UNION SELECT table_name, column_name from information_schema.columns #

flagという文字列で検索すると

f:id:tawatino:20190528110205p:plain

flagテーブルのflagにflagがありそう union select でflagを連結 f:id:tawatino:20190528110321p:plain

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 をして眺めていると

f:id:tawatino:20190528110615p:plain いらない文字を消していく

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}

面白かったけどバイナリ関係弱すぎて辛い_:(´ཀ`」 ∠): 来年も楽しみにしてます!

© 2018-2023 tt. All Rights Reserved.