[Web安全筆記] 透過 docker 配置漏洞測試網站

為了有效的學習進行網站漏洞練習,我們必須建立一個漏洞測試環境, 在本文當中我們將採用 docker 來配置測試環境,並安裝 WebGoatDamn Vulnerable Web ApplicationBroken Web Applications

漏洞測試環境

使用現成網頁漏洞測試環境,而不必寫含有漏洞的網站。對於初學者來說 可以專心了解漏洞。因為這些環境本身是不安全的,透過 docker 可以很輕鬆的安裝這些環境,並在最少的情況下影響系統,隔離環境使電腦處於最小的風險。

安裝

WebGoat

首先我們必須找到 WebGoat 的 image,在這裡我們透過 docker 的指令搜尋

docker search webgoat

返回結果

NAME                         DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
webgoat/webgoat-8.0          Latest development version of WebGoat, see h…   44
webgoat/webgoat-7.1          Latest stable version of WebGoat, see https:…   29
szsecurity/webgoat           WebGoat Image                                   9
webgoat/webwolf                                                              6
vimagick/webgoat             A deliberately insecure Web Application         2    

我們挑選穩定版本的 image 為 webgoat/webgoat-7.1,pull 並運行, 運行後監聽本機 8080 端口。

docker run -p 8080:8080 -t webgoat/webgoat-7.1

之後我們可以瀏覽 http://localhost:8080/WebGoat 來查看 WebGoat 環境是否搭建完成,進入後註冊一個帳號使用。

關於 webgoat 的解答,可以參考測資 WebGoat/webgoat-integration-tests/src/test/java/org/owasp/webgoat

Damn Vulnerable Web Application

這次我們安裝的 image 為 vulnerables/web-dvwa,鍵入以下指令

docker run --rm -it -p 80:80 vulnerables/web-dvwa

由於預設端口為80,因此我們鍵入 http://localhost/ 即可看到 DVWA 網站。 我們可以看到登入界面,在配置環境的時候不用帳號密碼即可進入,並且執行安裝程序。 我們點擊Create / Reset Database之後重新登入。

之後我們透過預設密碼登入,即可看到環境。

帳號: admin
密碼: password

這樣就搭建完成 dvwa 的測試環境了,DVWA 打不進去的話可以調整難度為 low,預設是 high。

Broken Web Applications

直接使用 docker 找尋 image 找尋恰當的版本

docker search mutillidae

返回內容

NAME                                DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
citizenstig/nowasp                  OWASP Mutillidae II Web Pen-Test Practice Ap…   31                                      [OK]
bltsec/mutillidae-docker            Docker container for Mutillidae II **LATEST**   4
feltsecure/owasp-mutillidae         This is a docker image containing OWASP Muti…   4                                       [OK]
szsecurity/mutillidae               Mutillidae Image                                4
vulnerables/web-owasp-mutillidae2   Mutillidae is a deliberately vulnerable web-…   3                                       [OK]

這裡我們採用 citizenstig/nowasp 這個映像檔進行安裝,鍵入

docker run -d -p 80:80 citizenstig/nowasp

上面指令所產生的容器 mysql 密碼是隨機產生的,詳情可參見 docker hub頁面,可以自己設定密碼。下方指令就可以設定密碼為Chang3ME

docker run -d -p 80:80 -p 3306:3306 -e MYSQL_PASS="Chang3ME!" citizenstig/nowasp

之後我們可以透過 http://localhost/ 連入我們的測試環境,不過進入的時候 我們會連到 database-offline.php,這個時候點選 setup/reset the DB 即可解決問題。

這樣就完成環境的搭建了。

停止

當我們測試好相關漏洞的時候,可能會想要關閉docker容器,我們可以鍵入docker ps來查看開啟的容器。 並且透過docker stop 容器ID的方法停止容器。

如果想要移除容器,我們可以鍵入docker container ls -a查看未啟動的容器。並且透過docker rm 容器ID 的方式移除容器。


Web安全 Docker