🪆

Alpacahack は3日目のが面白かった

に公開1

Alpacahack とは

Alpacahack とは?

A platform for exploring cybersecurity through Capture The Flag
AlpacaHack hosts individual CTF competitions, with past challenges always available for practice

https://zenn.dev/tomatommy/articles/a43c2f955bae9c

上記の続き

問題はこちら↓

https://alpacahack.com/daily/challenges/emojify?month=2025-12

何が面白いって

なんと実際に稼働する一時的なサーバーを立ち上げて、実際にそこへ攻撃をしかける

おもしろ...!!!

DEATH NOTE の死神リューク

何をするのか

相変わらず問題の説明文には何も書いてないが、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 コンストラクタの正しい使い方をしていない、という点から気づくべきだったなぁ