CSAW CTF 2020 Writeup
別の勉強しててCTFご無沙汰でした。255点。
歳のせいか体力がなくて難しい問題頑張れませんでした。つらい
よくないけど他のプレイヤーとちょっとずつ話したりした。
これは新しい体験だった(英語力が上がった気がする)。
どうせ上位でもないなら、問題がオープンでホットなうちにヒント乞食してでも解くべきなのかもしれない…?わからない
(でもそんなことしてたらdiscordの雑談チャットが閉まってしまった)
sanity (sanity)
discordの#rulesチャンネルの説明文にフラグ。
flag: flag{w3lc0m3_t0_csaw2020}
widthless
HTTPレスポンスの末尾にZero-Width space steganographyが存在する。
下記サイトでデコードした。
https://offdev.net/demos/zwsp-steg-js
b'YWxtMHN0XzJfM3o='
、base64デコードするとalm0st_2_3z
になる。
これをsign upに入力すると/ahsdiufghawuflkaekdhjfaldshjfvbalerhjwfvblasdnjfbldf/<pwd>
という文字列が返ってきた。
http://web.chal.csaw.io:5018/ahsdiufghawuflkaekdhjfaldshjfvbalerhjwfvblasdnjfbldf/alm0st_2_3z
にアクセスすると、次のページにアクセスできる。
このページにもzwsp stegoが最初の方、htmlタグ内等に含まれているので上記サイトでデコードすると755f756e6831645f6d33
、デコードするとu_unh1d_m3
が得られる。
同様にmail欄にsubmitすると/19s2uirdjsxbh1iwudgxnjxcbwaiquew3gdi/<pwd1>/<pwd2>
と返ってくるので、http://web.chal.csaw.io:5018/19s2uirdjsxbh1iwudgxnjxcbwaiquew3gdi/alm0st_2_3z/u_unh1d_m3
にアクセスすればフラグ。
flag: flag{gu3ss_u_f0und_m3}
roppity
ret2libc。過去のコードをちょっと変えただけ。
なぜかローカルではうまく動かなくて焦った。
シェルが取れたらls
、cat flag.txt
でOK。
flag: flag{r0p_4ft3r_r0p_4ft3R_r0p}
Perfect Secrecy
二枚の画像の黒が重なっている部分を抽出して画像にすると良さそうだった。
適当にStegSolveのImage Combiner(XOR)を使った。
ZmxhZ3swbjNfdDFtM19QQGQhfQ==
をbase64デコードしてフラグ。
flag: flag{0n3_t1m3_P@d!}
ezbreezy
眺めてたら怪しげな関数を見つけた。
固定値を配列にmovしている。値を抽出すると8E94898F A39D8790 5C9E5B87 9A5B8B58 9E5B9A5B 8C87955b A5
。
8e, 94, 89, 8f, a3という数列のそれぞれの差が、6C, 61, 67, 7B, 7D(="flag{")と同じだったので、各値から0x28を引いてみたらフラグになった。
flag: flag{u_h4v3_r3c0v3r3d_m3}