dockerでOWASP Juice Shopのやられ環境構築

Juice Shopコンテナイメージのインストール

こちらを参考。

https://hub.docker.com/r/bkimminich/juice-shop
$ docker pull bkimminich/juice-shop

見てみる。

$ docker image ps

REPOSITORY              TAG       IMAGE ID       CREATED        SIZE
schickling/mailcatcher  latest    9156fb5a15fb   8 months ago   60.1MB

起動。

$ docker run --rm -p 3000:3000 bkimminich/juice-shop

info: All dependencies in ./package.json are satisfied (OK)
info: Chatbot training data botDefaultTrainingData.json validated (OK)
info: Detected Node.js version v18.14.0 (OK)
info: Detected OS linux (OK)
info: Detected CPU x64 (OK)
info: Configuration default validated (OK)
info: Entity models 19 of 19 are initialized (OK)
info: Required file server.js is present (OK)
info: Required file index.html is present (OK)
info: Required file styles.css is present (OK)
info: Required file tutorial.js is present (OK)
info: Required file polyfills.js is present (OK)
info: Required file runtime.js is present (OK)
info: Required file main.js is present (OK)
info: Required file vendor.js is present (OK)
info: Port 3000 is available (OK)
info: Server listening on port 3000

アクセスしてみる

ブラウザから、「http://localhost:3000」にアクセス。

① ー 以下の様な注意書きが書いてあるので、次回から表示させないように「Dismiss」をクリック。

OWASP Juice Shop へようこそ! 膨大な数の意図的なセキュリティ脆弱性を持つウェブアプリケーションであるため、OWASPジュースショップは、ウェブ開発者のためのベストプラクティスやテンプレートアプリケーションとは対極にあるものであるはずです。これは、最新のウェブアプリケーションにおけるセキュリティリスクに対する認識、トレーニング、デモンストレーション、演習のためのツールです。OWASP Juice Shopは、非営利団体Open Web Application Security Project(OWASP)が主催するオープンソースプロジェクトで、ボランティアによって開発・維持されています。プロジェクトの詳細とドキュメントについては、以下のリンクをチェックしてください。

② ー クッキーを受け入れろと言っているので、「Me want it!」をクリック。 これで環境構築は完了です。

とりあえず触る

「WappeLyzer」で、技術スタックのチェック。dockerでインストールしたので何も気にしてなかったけど、Apacheだと解る。あと、昔どっかで、vueっていう記事も見たけど、Angularか。

何をしたらいいのかわからないため、とりあえず左上のメニューボタンをクリックして、「ヘルプを読んで始める」をクリック。

なにやら、「Score Board」のページを自ら見つけろと言うことらしい。

なんか、ソース見ながら「score」で検索してたら怪しいのあった。多分、vueやreactでいうルーティングを、Angularでも定義しているっぽい。

直接URLにパスを入れてみる。

なんか出た!

なんか出た後の画面。

メニューにも「スコアボード」が表示されて、いつでもこの画面に行けるようになりました。これで迷うこと無く、webアプリのハッキングを進めていくことができそうです。

FFUF

とりあえず今回は心置きなく、ffufを使える環境を作ることが目的でした。

なので早速、kaliから今回dockerで起動している「https://192.168.1.99:3000」に、実行してみる。

$ ffuf -w /usr/share/wordlists/SecLists/Discovery/Web-Content/common.txt -u http://192.168.1.99:3000/FUZZ -fs 1987   

        /'___\  /'___\           /'___\       
       /\ \__/ /\ \__/  __  __  /\ \__/       
       \ \ ,__\\ \ ,__\/\ \/\ \ \ \ ,__\      
        \ \ \_/ \ \ \_/\ \ \_\ \ \ \ \_/      
         \ \_\   \ \_\  \ \____/  \ \_\       
          \/_/    \/_/   \/___/    \/_/       

       v1.5.0 Kali Exclusive <3
________________________________________________

 :: Method           : GET
 :: URL              : http://192.168.1.99:3000/FUZZ
 :: Wordlist         : FUZZ: /usr/share/wordlists/SecLists/Discovery/Web-Content/common.txt
 :: Follow redirects : false
 :: Calibration      : false
 :: Timeout          : 10
 :: Threads          : 40
 :: Matcher          : Response status: 200,204,301,302,307,401,403,405,500
 :: Filter           : Response size: 1987
________________________________________________

.well-known/security.txt [Status: 200, Size: 403, Words: 47, Lines: 6, Duration: 7ms]
Video                   [Status: 200, Size: 10075518, Words: 0, Lines: 0, Duration: 0ms]
api                     [Status: 500, Size: 3016, Words: 235, Lines: 50, Duration: 75ms]
api/experiments/configurations [Status: 500, Size: 3070, Words: 235, Lines: 50, Duration: 75ms]
apis                    [Status: 500, Size: 3018, Words: 235, Lines: 50, Duration: 75ms]
api/experiments         [Status: 500, Size: 3040, Words: 235, Lines: 50, Duration: 75ms]
assets                  [Status: 301, Size: 179, Words: 7, Lines: 11, Duration: 16ms]
ftp                     [Status: 200, Size: 11083, Words: 1558, Lines: 357, Duration: 269ms]
profile                 [Status: 500, Size: 1247, Words: 162, Lines: 50, Duration: 182ms]
promotion               [Status: 200, Size: 6586, Words: 560, Lines: 177, Duration: 270ms]
redirect                [Status: 500, Size: 3119, Words: 244, Lines: 50, Duration: 132ms]
rest                    [Status: 500, Size: 3018, Words: 235, Lines: 50, Duration: 127ms]
restore                 [Status: 500, Size: 3024, Words: 235, Lines: 50, Duration: 127ms]
restored                [Status: 500, Size: 3026, Words: 235, Lines: 50, Duration: 127ms]
restricted              [Status: 500, Size: 3030, Words: 235, Lines: 50, Duration: 126ms]
restaurants             [Status: 500, Size: 3032, Words: 235, Lines: 50, Duration: 127ms]
robots.txt              [Status: 200, Size: 28, Words: 3, Lines: 2, Duration: 33ms]
security.txt            [Status: 200, Size: 403, Words: 47, Lines: 6, Duration: 54ms]
snippets                [Status: 200, Size: 707, Words: 1, Lines: 1, Duration: 35ms]
video                   [Status: 200, Size: 10075518, Words: 0, Lines: 0, Duration: 0ms]
:: Progress: [4713/4713] :: Job [1/1] :: 170 req/sec :: Duration: [0:00:17] :: Errors: 0 ::

いいねー、「Video」とか「ftp」とか「security.txt」とか「robots.txt」とか気になる。スコアボードとか一旦無視して、好き放題ペネトレ進めてみます笑

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

前の記事

TryHackMe Kali OpenVPN