TryHackMe

TryHackMe(THM): OWASP Juice Shop-Writeup

OWASP Top10の脆弱性がつくりこまれたJuice ShopをテーマにしたRoom。

ネタバレ防止の為答えはなるべく直接書かないようにしてます。

Task 1 Open for business!

No Answer
Burp Suiteの準備をしておくようにって言われる

Task2 Let’s go on an adventure!

チュートリアルっぽい

Question #1: What’s the Administrator’s email address?

管理者のメールアドレスはアップルジュースのレビューを見ると載ってる。

Question #2: What parameter is used for searching?

検索につかうパラメータは検索してみるとわかる。

Question #3: What show does Jim reference in his review?

ジムさんのレビューで参照されている番組を調べるにはジムさんが買ってるグリーンスムージーのレビューを確認する

replicatorってなんだ?

なんとなくセキュリティ界隈ってスタートレックのネタ多くない?

Task3 Inject the juice

Question #1: Log into the administrator account!

管理者アカウントに不正ログインうする。
ログインページで

' or 1=1--

と入れるとSQLインジェクションが成立する

ユーザーIDが0の人にログインができる。(今回はそれが管理者アカウント)

Question #2: Log into the Bender account!

ベンダーアカウントに不正ログインする。
ログイン画面で

bender@juice-sh.op'--

と入れる

SQLインジェクションによりベンダーのメールアドレスのパスワードの判定が真になるのでベンダーアカウントにログインできる

Task4 Who broke my lock?!

Question #1: Bruteforce the Administrator account’s password!

管理者でログインできたんだからもうパスワードとか別によくないですか…?
と思いつつ。パスワードを特定するために、言われたままブルートフォースを行う(これも勉強)

右クリックしてIntruderに送る

Positionsに移動して[Clear]

emailのところを管理者のメアド(admin@juice-sh.op)に変更

passwordのところで[Add]を2回クリック

Payloadsに移動

[Load]をクリックしてパスワードのリストを選択

[Start attack]をクリック

結果を見ると117番目で1個だけ200が返ってきてるので、パスワードがわかる

Question #2: Reset Jim’s password!

スタートレックマニアのジムのひみつの質問の答えをOSINTせよとのこと。現実の世界でも結構ありそう、ひみつの質問って運用がほんと難しいよね…

パスワードリマインダの画面にジムのメールアドレスを入力すると

Your eldest siblings middle name?

あなたの一番上の兄弟のミドルネーム?ということなので

jim star trek eldest sibling

ってググると家系図っぽいものが出てくる。お兄さんの名前はSamuel Kirkとのこと

その情報を使ってジムのパスワードをリセットできる(ちなみに最初は大文字)

Task5 AH! Don’t look!

Question #1: Access the Confidential Document!

About USのページでリンクをクリックすると

http://ルームのIPアドレス/ftp/legal.md

にリンクが貼られているので、ファイル名を消して

http://ルームのIPアドレス/ftp/legal.md

Acquisitions.mdをダウンロードしてトップページに戻る

Question #2: Log into MC SafeSearch’s account!

After watching the video there are certain parts of the song that stand out.

ビデオのなかで目立っている特定の部分…?日本語あってる?
まずそのビデオがどこにあるのかわからないんですけど…どういうこと(꒪⌓꒪)
普通に問題文に答えが書いてあるのでそのままログインした

Question #3: Download the Backup file!

ダウンロードできるのは.mdファイルと.pdfファイルのみだけど。なぜかどうしてもpackage.json.bakをダウンロードしたいらしい。

urlの最後に

%2500.md

をつけるとバイパスできる。ダウンロードできるURLのチェックのしくみが、URLを後方から確認して%2500で終わるというしくみになっているから。

ちなみにこのタスクやるときにError Handlingのフラグが一緒にとれたけどなんだったんだろう。

Task6 Who’s flying this thing?

Question #1: Access the administration page!

管理者ページにアクセスしてみようって話。
Task4で判明しているパスワードを使ってadminでログインした状態で

http://ルームのIPアドレス/#/administration

Question #2: View another user’s shopping basket!

別のユーザーの買い物かごの中身を表示することができる脆弱性がある

adminでログインして、Burpを起動する
右上のYour Basketをクリックするときの通信をインターセプトして

GET /rest/basket/1 HTTP/1.1

GET /rest/basket/2 HTTP/1.1

に書き換えてForwerdする

Question #3: Remove all 5-star reviews!

5つ星のレビューを削除するといういやがらせ。なんたる悪行。

管理ページにもっかい入って管理画面の機能で普通にレビューを消すだけ。

Task7 Where did that come from?

Question #1: Perform a DOM XSS!

XSSを試す
検索ボックスにiframeを使ったXSSを入力して検索する

Question #2: Perform a persistent XSS!

最終ログインIPアドレスを記録するところにもXSSができる

ログアウトするときにIPアドレスを記録するので

ログアウト前にBurpを起動

ログアウトをクリックしてインターセプト

ヘッダに以下を追加

Question #3: Perform a reflected XSS!

注文履歴画面に反射型XSSの脆弱性がある

Orders & Payment> Order History

で履歴画面が表示される。トラックのアイコンをクリックするとアドレスバーのURLが表示されるのでそこを書き換える

Task8 Exploration!

スコアボード画面にアクセスする

http://ルームのIPアドレス/#/score-board

TryHackMeの通りにやると9%の進捗。

まださきは長い…