場阿忍愚CTF writeup

同期の間で流行り出して参加.
結果は, 22位で4648点でした.もう少し解きたかった….
しかし最高に楽しかった.参加してからの2ヶ月はほとんど問題のことばっかり考えていた気がする.
色々なジャンルに触れ,ツールなども学べたので良い経験になったと思う.

練習

image level 1

画像を全部開いてタブで移動しながら読んだ.

芸術

ワットイズディス?

ヒントに「大和セキュリティ勉強会のステッカー」って書いてあったので,
よく見てみると確かにそう読めた.

cole nanee?

画像検索にかけると,どうやら運営っぽい人たちの Twitter アイコンに使われているようだ.
このやたら忍者推しで漢字1文字,かつ形から推測した.

Lines and Boxes

とても苦しんだ.
ヒントから漢字じゃなさそうまでは予想.アルファベット? どうも右の文字は PLAY と読めなくもない.
それから左の文字が全然わからないで詰み状態.
本当に無理やり読んでみると「山」以外は oRd なように読める.
ordplay で検索するとサジェストされた.

Why want something more?

画像検索にかけるとどうやら Asian art museum に該当文字の茶掛け?があるらしい.
書いたと思われる人が Shozo Sato という人だとわかる.
この名前で検索すると 「Shodo: The Quiet Art of Japanese Zen Calligraphy; Learn the Wisdom of Zen Through Traditional Brush Painting」 なる本を出版しているのがわかる.中身検索で見ても見つからず詰み.
本タイトルで漂っているとなんか youtube に順番にページをめくっていくだけの謎の動画があり,その中に書いてあった.

毎日使う

気合で草書を読む.
日本インターネット書道協会なるサイトに草書の早覚え法というページがあって,
偏を見ていると,「うかんむり?」か「きがまえ?」にみえる.
適当に偏から漢字を検索できるサイトでそれっぽい漢字を入れていった.

二進術

壱萬回

最初はずっと外部プログラムから叩いて自動回答していくのかと思ったが,どうもうまくいかず…   バイナリ読んでみると, FLAG を出す関数が丸々見えている.16進数から頑張って変換する.

DxLib遊戯如何様

起動するとなんかオセロが始まる.
適当に勝利回数弄ればいいの?と思って「スペシャねこまんま57号」を使い,
勝利回数を検索してメモリを弄り,65535にするとフラグが出てきた.

Unity遊戯如何様

ヒントにあることをそのままやる.
なんか「its_3D_Game_Tutorial」っぽいことがわかる.
でもそのまま入れてもダメ.謎い….
画面に表示されるタイミングで小文字に変換されたりするんだろうか?
と思って添付されているゲームの画像をよく見ると,
ソースでは Coins で渡しているのに画像では COINS と大文字になってる.
なるほど,大文字に変換されていた.

解読術

image level 5

解凍して ls するとタイムスタンプが全部異なる.
タイムスタンプ順に画像を開くと,意味のある文字になった.

Ninjya Crypto

ヒントから「忍者 暗号」で検索するとそれっぽいのが出てくる.
解読すると,「やまといえば」と書いてある.そのまま入れてみたがダメ.
問題に「敵か仲間か? 証明して!」と書いてある.そういえば「山といえば川」的な.

Decrypt RSA

こんなでかそうな素数分解できなさそう.
素数で検索すると Wikipedia のページが出てきて p, q がわかる.
あとはそこから秘密鍵の pem 作って openssl のコマンド流せばいけた.

解析術

Doubtful Files

ヒントもさっぱりわからない.
全部の画像適当に開くと「7.inf」はなぜか普通に開ける.
また,「8.vbs」はセキュリティ警告が出て起動できない.
起動できないエラーメッセージで検索していると ZoneID なるものがあるのがわかった.
ZoneID を確認するには notepad <FILE_PATH>:Zone.Identifier とすると確認できることがわかった.
「7.inf」と「8.vbs」を開くとなんか base64 っぽい文字があるので連結してデコード.

情報漏洩

なんかやたらでかいパケットをみると PNG っぽいヘッダがみえる.
3つあるので連結して png にするとあっさり開けた.

Speech by google translate

どうも切れてるように思える.ヒントに長く聞くには?的なことがあったので, 適当にヘッダを弄ってチャンクの長さ?部分を ff で埋め尽くしてきくと全部聞けた.

電網術

ftp is not secure.

Wireshark で開くと FTP-DATA が飛んでる部分がある.
TCP STREAM として追って dump した ASCII を適当に眺めるといかにも base64 っぽい文字があった.
あとはデコードしてあげた.

ベーシック

なんか http://burning.nsc.gr.jp にアクセスしてるのでアクセスしてみると認証が.
よくよく考えると http がユーザで //burning.nsc.gr.jp がパスワードであることに気づく.
ログインしたらフラグが書いてあった.

Japanese kids are knowing

適当に nmap でフルスキャンしてみると open なところが. nc で順番につなぐと C, D, ... 的な文字がでてきた.
さっぱりわからなかったので適当に現れる文字 ACDEFG で検索してみるとどうやら音楽記号らしい?
演奏してくれるサイトに順番に入れて再生してみたらかえるの歌っぽいので frog を md5 にかける(改行されないように気をつける).

諜報術

KDL

internet Archive で戻ればわかった.

Mr. Nipps

FacebookTwitter から追跡する? と思い調べる.
Twitter をみてると instagram に該当の日付・時間に画像を上げていた.
HOOTERS の公式などから緯度経度を調べて入れてみるもダメ.
全然わからなかったけど,ヒントをずっと見ていると,永 = A, 日° = P, 愛 = I だ! と気づく.
最初は google mapsAPI とか調べてたけど,よく考えたら instagramAPI じゃない?
と思ってやってみた.新しいバージョンの API だとダメで心が折れそうになった.
よくよく公式ドキュメントを見てみると,古い API がまだ使えることがわかった.
公式ドキュメントの API Console のリンクから飛んで認証通して media の API 叩いたら緯度経度が取得できた.
あとは,桁数に気をつけて入力.

Akiko-chan

画像検索して wordpress な URL を探した.

タナカハック

ヒントの通り, www.yamatosecurity.com のファイルを wget して grep したら出てきた.

タイムトラベル

DNS 50.115.13.104」で検索して片っ端から開いていくと ninja みたいなドメインが出てきた.
いかにもそれっぽいので入れてみたら答えだった.

記述術

search_duplicate_character_string

最長共通部分文字列(LCS) っぽい. なんかそのあたりのワードで検索していたら ruby のコードがあったので,
そいつに入力丸々流したらあっさり答えが出た.

JavaScript Puzzle

alert の部分はちゃんとアスキーコード表をみて入れる.
あとは,なんかそれっぽい感じになるように並べ替えただけ.

Count Number Of Flag's SubString!

curl で全探索気味に投げつけていった.

解凍?

file して圧縮形式を調べて順番に解凍していった.
何回も解凍しないとダメそうだったので, file した結果でコマンドを分岐するスクリプト書いて流した.

Make sorted Amida kuji!!

1問目は手動でポチポチやったら解けた.
2問目が問題で,全探索するのはどう考えても無理ゲー.
まずは,各行において有効となる順列をすべて生成する.
それで1, 2, 3, 4, 5行目だけ有効な順列をすべて試して,残りの行は最終的な順列に近くなるなら順番に交換していく,
という,部分全探索 + 貪欲の組み合わせでやったが,62個もでず. これは有効な順列で全探索する行を5ときめて(これ以上は探索空間的にきつい),
その行を全探索する({1,2,3,4,5},{1,2,3,4,6}, ... })というクソみたいな小手先技を使ったら,
ピッタリ62個でた.あとは全部ファイルに出力して順番にクリックボードに送りつけて62回 web から投稿した.

超文書転送術

GIFアニメ生成サイト

適当に画像送りつけて,返ってきた画像を色々調べてみてもわからず.
DOM を弄って怪しいことしてもさっぱり.
色々諦めて,上がっている画像があやしい?とおもって1の画像を開くと 403 が返ってきた.
これは怪しいと思って,そういえば自分で画像を作った時はなんかパスが違うだったなー,と思い,
そのパスで画像を表示してみるとなんか gif が出てきたので DL して preview で開いたらフラグがあった.

Network Tools

ページをみてみるとなんか bash のバージョン書いてある.
そういえば前に出た CTF で shellshock の問題があったなー,とおもって
適当に ls するものを埋め込んで ps とか実行してみたら flag のファイルがあったので cat した.

箱庭XSS

入力値が全部大文字になる,ということは色々入力しているとわかった.
html タグは大文字になっても有効だけど,js はダメ….
そういえば前に記号だけで js を書くとかいうネタをみたことがあったので,
調べてみて,その通りに alert を出すコードを書いたらフラグが出た.

YamaToDo

文字コードが指定できるので 5C 問題的な何かかな? と思うも sjis はブロックされている.
mysql に set できる文字コードで同じような問題が起きるものはないか? と思って調べていると,
big5 というのも起きるらしく「功」が該当文字であることがわかった.
あとはうまく SQL 文を組み立てて,最初のレコードを insert してみるもうまくいかず.
さらに調べてみると insert しているテーブルに副問い合わせする場合は,
as を使ってテーブルに別名をつけてあげないとうまく動かないらしい.
別名をつけてあげるとなんか文字化けしたレコードが追加された.
ここから全然わからなかったのだけど,ふとしたタイミングで間違って文字コードeuc-jp にしたらフラグになった.
すごい偶然だった.

箱庭XSS2

何も考えずに 箱庭XSS で使ったコード突っ込んだらフラグが出た.

兵法術

将棋詰め壱

将棋のサイトを見ながら頑張った.

将棋詰め弐

右上の座標の漢字が入れ替わってることに注意してやった.

将棋詰め参

頑張る

将棋詰め四

同上,ソルバでも書いたほうが良かったかも,というくらいには時間かかった.