angstromCTF 2019 Writeup

チーム Contrail として ångstromCTF 2019に参加しました。

最終順位は157/1570位(860pt)でした。

自分は MISC Paper Bin (40pt), WEB No Sequels(50pt)を解きました。

MISC


・Paper Bin(40 pt)

問題文:

defund accidentally deleted all of his math papers! Help recover them from his computer’s raw data.

raw data(生データ)からデータを復元する問題。

binwalk 叩くとPDFデータが含まれている事がわかる。

問題のヒントに File carvingとあるので調べる。(ファイルのメタデータなしでファイルを復元するプロセスのことらしい)

foremostというツールが有効らしいので使う。(datからpdfを抽出)

$foremost -t pdf -i paper_bin.dat

実行すると複数のpdfが復元されるのでpdfを開いて調べてみると一つだけflagが書かれているpdfがあった。

actf{proof_by_trivialityg}

 

WEB


・No Sequels(50pt)

問題文:

The prequels sucked, and the sequels aren’t much better, but at least we always have the original trilogy.

link先のページにはusername と passwordの入力フォーム、その下にはnode.jsのコードが貼ってある。

入力から受け取ったデータをそのままqueryに代入してるので典型的なNoSQL injectionが使える。

"username": {"$gt": ""},
"password": {"$gt": ""}
}

HTTPパケットを作る。bodyに上記のjsonをセットし、headerに問題ページのcookieをセットする。

作成したパケットをPOSTすると./site にリダイレクトされてるみたいなので、Response headersから得たcookieをセットして直接./siteにアクセスしてみる。

無事./siteにアクセスできてflagをゲット。そのままNo Sequels2の問題ページとなっていた。

actf{no_sql_doesn’t_mean_no_vuln}

 

感想


今回のCTFはチームContrailに参加して最初のCTFでしたが、スケジュールが忙しくてあまり参加することができなかったのが残念です。

メンバーが次々問題を解いていて非常に良い刺激でした。

チームで参加することで、普段ならすぐに諦めているような問題にもじっくり取り組むことができて良かったです。

メンバーがつよつよなので置物にならないように頑張りたいです。