0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【TryHackMe】Valenfind の WriteUp【Love at First Breach 2026】

0
Posted at

本稿はValenfindのWriteUpとなる。

概要

image.png
image.png
マッチングアプリを模したWebサイトからフラグを奪取する。

攻略の流れ

ポートスキャンやファジングを実施したが、有力な情報は得られなかったので、まずはサイトを巡回してみることにした。
image.png
サインアップからユーザー名とパスワードを登録すると、このような詳細情報を求められる画面へ遷移する。そこで、HTMLタグを挿入してみたが、エスケープされているようなので別の線を探すことにした。


image.png
Webサイトのメインページのようなところに来た。ここではほかのユーザーが一覧表示されており、Likeボタンを押してそのユーザーのLike数を増やすことができる。


image.png
ユーザーを見に行くとコメントが表示されている。複数アカウントを作成して検証した結果、内容は登録時に入力した「Bio / About Me」のことだった。


image.png
コメントの表示デザインは3種類設定されており、好きなものを選ぶことができるようである。この切り替え機能をいじったところ、サイトのURLが変化しなかった。そのため、LFI(Local File Inclusion) が成立しないか確かめることにした。


image.png
image.png
ブラウザの開発者モードから切り替え時の通信を確認すると、GETリクエストで/api/fetch_layout?layout=...へアクセスしていることがわかる。
ここで注目すべきは、パラメータとして .html というファイル名が直接渡されているところだ。通常のデザイン切り替えであれば、id=1name=modern といった抽象的な識別子を送るのが一般的だが、このアプリは「サーバー上のファイル」を直接指定して読み込ませる設計になっている。そこで、ディレクトリトラバーサル(../)によってテンプレートフォルダを脱出し、OSの重要ファイルまで覗き込めないか検証することにした。

  • http://<ターゲットマシンのIP>:5000/api/fetch_layout?layout=../../../../../../../../etc/passwdをアドレスバーに入力
    image.png
    通常のLinuxサーバーであれば存在するファイルであり、かつ標準で全ユーザーに読み取り権限があるファイルにアクセスできるため、ほかのファイルも自由にアクセスできる可能性がある。
  • ・・・../../../../../../../../proc/self/environ
    image.png
    そこで、Linuxサーバー上で稼働しているサービスを調べるためにenvironへアクセスしたところ、こちらも閲覧できた。MEMORY_PRESSURE_WATCHvalenfind.serviceとある通り、systemd配下にこのサービスの設定ファイルがある可能性が高いことがわかる。なお、USER=rootからサービスはroot権限で動いていることもわかる。
  • ・・・../../../../../../../../etc/systemd/system/valenfind.service
    image.png
    アクセスするとExecStartから/opt/Valenfind/app.pyがソースコードとわかる。
  • ../../../../../../../../opt/Valenfind/app.py
    image.png
    APIキーがハードコードされている。DBも動いていることがわかる。
    image.png
    下のほうを見るとDBをエクスポートできるAPIが確認できるので、手元にダウンロードすることにした。

curl -H "X-Valentine-Token: CUPID_MASTER_KEY_2024_XOXO" http://<ターゲットマシンのIP>:5000/api/admin/export_db -o leak.dbを実行してcupid.dbをダウンロードする。

応答.sh
   % Total    % Received % Xferd  Average Speed  Time    Time    Time   Current
                                  Dload  Upload  Total   Spent   Left   Speed
 100  16384 100  16384   0      0  37467      0                              0
                                                                                                                                       
 ┌──(kali㉿kali)-[~/Desktop/THM/working]
 └─$ sqlite3 leak.db ".tables" 
 users

usersというテーブルにはダッシュボード画面に表示されていたほかのユーザーの情報が入っている。フラグはあるユーザーのパスワードとなっていた。

まとめ

今回のルームの脆弱性は

  • LFIが可能になっていたことで、ディレクトリトラバーサルによりサーバー上のファイルに直接アクセスできた
  • Webアプリがroot権限で実行されていたため、見えてはいけないファイルまで見えていた

ことの2つが大きい。加えて、APIキーをハードコードするのもあり得ない。ルームの説明欄にはWebアプリケーションがバイブコーディングで急造されたことが書かれており、フラグもそれにちなんだものになっている。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?