【TryHackMe】OWASP Juice Shop 攻略記録
【TryHackMe】OWASP Juice Shop 攻略記録
概要
この投稿は TryHackMe の OWASP Juice Shop ルームの攻略記録です。
このルームでは、OWASP Top 10 の脆弱性に対する理解を深めることを目的として、脆弱な Web アプリケーション「Juice Shop」を対象に演習を行います。
難易度は easy、推定所要時間は 60~90 分程度です。
| 項目 | 内容 |
|---|---|
| ルーム名 | OWASP Juice Shop |
| プラットフォーム | TryHackMe |
| 難易度 | easy |
| 所要時間 | 60〜90分 |
| 使用技術 | Burp Suite, Web, SQLi, XSS, Auth, Access Control |
学習目標と目的
- OWASP Top 10 に含まれる主要な脆弱性の仕組みと再現方法を学ぶ
- Burp Suite を活用したリクエスト操作の技術を習得する
- 認証バイパス、情報漏洩、アクセス制御不備などの実践的な脆弱性を体験する
- Webアプリケーションにおけるセキュリティ意識を高める
攻略の流れ
Task 1: Open for Business!
- 仮想マシンを起動し、ブラウザでアクセス。
- タスクの説明を読み「Complete」ボタンを押す。
❓質問と回答
Q1. Deploy the VM attached to this task to get started! You can access this machine by using your browser-based machine, or if you're connected through OpenVPN.
A1.No answer needed
Q2. Once the machine has loaded, access it by copying and pasting its IP into your browser; if you're using the browser-based machine, paste the machines IP into a browser on that machine.
A2.No answer needed
Task 2: Walk Through the Application
- 商品ページなどをブラウジングし、構造や機能を確認。
- 検索バーやレビュー欄、ユーザー情報などの情報を収集。
❓質問と回答
Q1. What's the Administrator's email address?
A1.admin@juice-sh.op
Q2. What parameter is used for searching?
A2.q
Q3. What show does Jim reference in his review?
A3.Star Trek
Task 3: Inject the Juice(SQL Injection)
- Burp Suite でリクエストをインターセプト。
-
admin@juice-sh.op' or 1=1 --を使ってSQLiログイン成功。
"email": "admin@juice-sh.op' or 1=1 --"
- 同様に
bender@juice-sh.op' --で別アカウントにもログイン可能。
❓質問と回答
Q1. Log into the administrator account!
A1. SQLiでログイン成功すればOK
Q2. Log into the Bender account!
A2. 同様のSQLiでログイン可能(メール:bender@juice-sh.op)
Task 4: Who Broke My Lock?!
- Burp Suite の Intruder を使ってログインパスワードをブルートフォース
- Jim のアカウントはセキュリティ質問を Google で調査し「Samuel」で突破
❓質問と回答
Q1. Bruteforce the Administrator account's password!
A1.admin
Q2. Reset Jim’s password!
A2.Samuel
Task 5: AH! Don't look!
-
/ftp/package.json.bak%00.mdにアクセスし、バックアップファイルを入手 - JSONファイル内に認証情報(MC SafeSearch のアカウント)を発見
/ftp/package.json.bak%00.md
"email": "mc.safesearch@juice-sh.op",
"password": "Mr. N00dles"
❓質問と回答
Q1. Find an exposed secret!
A1.Mr. N00dles
Q2. Log into MC SafeSearch's account!
A2.mc.safesearch@juice-sh.op / Mr. N00dles
Q3. Download the Backup file!
A3./ftp/package.json.bak%00.md
Task 6: Who's flying this thing?
-
/administrationにアクセスして管理画面を開く - 他人のバスケット情報を REST API 経由で直接参照(例:
/rest/basket/2) - 管理画面で任意の 5 スター レビューを削除
❓質問と回答
Q1. Access the administration page!
A1./administration
Q2. View another user's shopping basket!
A2./rest/basket/2
Q3. Remove all 5-star reviews!
A3. 管理画面の Review セクションで削除操作
Task 7: Where did that come from?
- DOM型 XSS:
<iframe src="javascript:alert('xss')">のように、DOM操作を通じてスクリプトを実行。 - 永続型(Stored)XSS:アカウント設定ページの「Last Login IP」欄に
<script>alert('xss')</script>を入力。 - 反射型(Reflected)XSS:検索やリンクに含まれるパラメータを利用してスクリプトを即座に実行。
❓質問と回答
Q1. Perform a DOM XSS!
A1.<iframe src="javascript:alert('xss')">
Q2. Perform a persistent XSS!
A2.<script>alert('xss')</script>
Q3. Perform a reflected XSS!
A3./#/search?q=<script>alert('xss')</script>
Task 8: Exploration!
- サイドメニューの「Score Board」ページにアクセス
- 完了済みのチャレンジ一覧を確認できる
❓質問と回答
Q1. View the scoreboard!
A1./#/score-board
使用ツール
| ツール | 用途 |
|---|---|
| Burp Suite | リクエスト改変、Intruder、Proxy |
| Firefox + FoxyProxy | Burp連携のブラウザ操作 |
| セキュリティ質問の調査 | |
| Juice Shop | 攻撃対象の脆弱なWebアプリケーション |
振り返りと感想
OWASP Juice Shop は非常に教育的でありながら、楽しく脆弱性の本質を体感できる良い教材でした。特に、SQLインジェクションやXSS、Broken Access Control などを実際に再現できたことは大きな収穫です。
Discussion