為了有效的學習進行網站漏洞練習,我們必須建立一個漏洞測試環境,
在本文當中我們將採用 docker
來配置測試環境,並安裝 WebGoat
、
Damn Vulnerable Web Application
、Broken 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