Alpacahack は3日目のが面白かった
Alpacahack とは
Alpacahack とは?
A platform for exploring cybersecurity through Capture The Flag
AlpacaHack hosts individual CTF competitions, with past challenges always available for practice
上記の続き
問題はこちら↓
何が面白いって
なんと実際に稼働する一時的なサーバーを立ち上げて、実際にそこへ攻撃をしかける


おもしろ...!!!

何をするのか
相変わらず問題の説明文には何も書いてないが、web サービスを見る限り
- 入力欄に emoji のキーを入力すると、その emoji が出現する
-
pizzaを入力すると 🍕 が現れる- API で取得しているらしい
これだけだが、この web サイトに何かしら攻撃を仕掛けて機密情報を抜き取る
この説明のなさもたまらん。
実際 web サービスが「攻撃次第では機密情報取れます」なんて書いてないものな。
ただ、Alpacahack の共通ルールとして、攻撃した結果得られる機密情報を flag と呼び、その flag を入力することで正誤判定をする仕組み
ソースコードが提供されている
問題文を見ればわかるように、この web サーバーのソースコードが一緒に提供されている
つまりシナリオとしては、
- 「偶然ある web サーバーのソースコードが手に入った。ソースコードを見る限り脆弱性がありそうなので、実際にその弱点を突いてみよう」
ということになる。
「いや、ソースコードがあるなら、解くの簡単じゃね?」
と思うじゃないですか。
... 解いてみてほしい笑
Dockerfile も提供されているのでローカルで環境立ち上げるのも簡単なのだが、そもそも構成がかなりシンプルなので、ソースコードを眺めるだけで十分内容は理解できる。
理解できるが、脆弱性がどこにあるか、と問われるとなかなか難しい。
解法↓
Daily AlpacaHack 1~5日分 WriteUp
解いた感想
初見、わかりませんでした ... orz
「脆弱性がある」って知った上で取り掛かってないと、ソースコードを見た上でも
「問題なさそうですね」
とスルーしてしまいそうな脆弱性。
ていうか、脆弱性のアンテナ貼っててもスルーさせちゃう脆弱性。
つまり、業務でも発生させうる脆弱性だと思った。
自身のセキュリティへの力不足を感じると同時に、セキュリティの面白さをより感じられる問題になった。
下記について、よく知っておくべきだ、ということがわかった
- JS の URL コンストラクタの仕様
なお、
この web サービスの脆弱性を突き、環境変数の FLAGの値を取得する HTTP request を考察せよ
と AI に指示したところ、簡単に解答出しました。超悔しい
Discussion
URL コンストラクタの正しい使い方をしていない、という点から気づくべきだったなぁ