2022年5月6日 星期五

[研究]OWASP WebGoat 8.2.2、Webwolf 8.2.2滲透測試學習平台安安裝、啟動 (Windows 2019)

[研究]OWASP WebGoat 8.2.2、Webwolf 8.2.2滲透測試學習平台安安裝、啟動 (Windows 2019)

2022-05-06

********************************************************************************
2022-05-16補,Windows 10和 Windows Server 2019上很順利

[研究]OWASP WebGoat 8.2.2 滲透測試學習平台 (Windows 10)
[研究]OWASP WebGoat 8.2.2 滲透測試學習平台 (Windows Server 2019)(二)
https://shaurong.blogspot.com/2022/05/owasp-webgoat-822-windows-server-2019.html

********************************************************************************

WebGoat 是一個由 OWASP 維護的、故意不安全的 Web 應用程式,旨在教授 Web 應用程序安全課程。 

Category:OWASP WebGoat Project
https://www.owasp.org/index.php/Category:OWASP_WebGoat_Project

8.2.2版是2021-09-05 釋出
https://github.com/WebGoat/WebGoat/releases
此處可下載到 webgoat-server-8.2.2.jar 和 webwolf-8.2.2.jar 檔案。

GitHub - WebGoat/WebGoat: WebGoat is a deliberately insecure application
https://github.com/WebGoat/WebGoat
網頁上說需要 Java 17,指令類似如下
java   -Dfile.encoding=UTF-8   -jar   webgoat-8.2.3.jar 
( 會執行失敗,有官方網頁沒說的問題,稍後說 )

Microsoft Build of OpenJDK
直接下載 (找格式為 .msi 的安裝方便些,此處 .msi 被翻譯成「微星」,看的很不習慣)

Oracle JDK下載
直接下載

Java 17 安裝後,隨便啟動個「命令提示字元」視窗,測試一下,確認版本。

C:\>java  -version
openjdk version "17.0.1" 2021-10-19 LTS
OpenJDK Runtime Environment Microsoft-28056 (build 17.0.1+12-LTS)
OpenJDK 64-Bit Server VM Microsoft-28056 (build 17.0.1+12-LTS, mixed mode, sharing)

C:\>

啟動 WebGoat 其實只要下面即可,不用 -Dfile.encoding=UTF-8 參數

java   -jar   webgoat-server-8.2.2.jar  

但實際上會失敗,


C:\>cd   C:\WebGoat

C:\WebGoat>java   -jar   webgoat-server-8.2.2.jar
13:44:59.738 [main] INFO org.owasp.webgoat.StartWebGoat - Starting WebGoat with args:
13:44:59.750 [main] ERROR org.owasp.webgoat.StartWebGoat - Port 127.0.0.1:8080 is already in use
Port 127.0.0.1:8080 is in use. Use environment value WEBGOAT_PORT to set a different value.

C:\WebGoat>SET WEBGOAT_HSQLPORT=8081

C:\WebGoat>java   -jar   webgoat-server-8.2.2.jar

檢查誰用了 Port 8080 卻發現沒有

netstat -nao | find "8080"   

要照訊息說的,設定 WEBGOAT_HSQLPORT 後,再執行一次,才會成功。

再查一次

C:\>tasklist  /fi  "pid eq 17712"

映像名稱                       PID 工作階段名稱      工作階段 #    RAM使用量
========================= ======== ================ =========== ============
java.exe                     17712 Console                    2    371,108 K

C:\>netstat -nao | find "808"
  TCP    0.0.0.0:808            0.0.0.0:0              LISTENING       3244
  TCP    127.0.0.1:8080         0.0.0.0:0              LISTENING       17712
  TCP    127.0.0.1:8081         0.0.0.0:0              LISTENING       17712
  TCP    [::]:808               [::]:0                 LISTENING       3244

C:\>tasklist /fi "pid eq 17712"

映像名稱                       PID 工作階段名稱      工作階段 #    RAM使用量
========================= ======== ================ =========== ============
java.exe                     17712 Console                    2    371,108 K

C:\>

C:\>tasklist /fi "pid eq 3244"

映像名稱                       PID 工作階段名稱      工作階段 #    RAM使用量
========================= ======== ================ =========== ============
OneApp.IGCC.WinService.ex     3244 Services                   0     35,044 K

C:\>

其實 WebGoat.jar 似乎內含會啟動 WebGoat 網站自己和 HSQLDB (HyperSQL DataBase) 資料庫,而且預設兩個都用 Port 8080,但 WebGoat 網站占用 Port 8080 後,HSQLDB (HyperSQL DataBase) 沒 Port 8080 可用,於是要修改 WEBGOAT_HSQLPORT 設定的 Port;

如果是一開始 Port 8080 就被 WebGoat 網站以外的程式佔用了,會被要求修改 WEBGOAT_PORT 和  WEBGOAT_HSQLPORT 兩個 Port 的值,然後再次啟動才會成。

執行後注意最後幾行訊息,它會告訴你網站在哪

2022-05-06 13:48:40.927  INFO 17712 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
2022-05-06 13:48:41.255  INFO 17712 --- [           main] o.s.b.a.e.web.EndpointLinksResolver      : Exposing 2 endpoint(s) beneath base path '/actuator'
2022-05-06 13:48:41.292  INFO 17712 --- [           main] io.undertow                              : starting server: Undertow - 2.2.4.Final
2022-05-06 13:48:41.305  INFO 17712 --- [           main] org.xnio                                 : XNIO version 3.8.0.Final
2022-05-06 13:48:41.314  INFO 17712 --- [           main] org.xnio.nio                             : XNIO NIO Implementation Version 3.8.0.Final
2022-05-06 13:48:41.396  INFO 17712 --- [           main] org.jboss.threads                        : JBoss Threads version 3.1.0.Final
2022-05-06 13:48:41.445  INFO 17712 --- [           main] o.s.b.w.e.undertow.UndertowWebServer     : Undertow started on port(s) 8080 (http) with context path '/WebGoat'
2022-05-06 13:48:41.460  INFO 17712 --- [           main] org.owasp.webgoat.StartWebGoat           : Started StartWebGoat in 11.835 seconds (JVM running for 12.666)

訊息說網站在 HTTP Port 8080 的 /WebGoat 目錄

http://127.0.0.1:8080/WebGoat
注意,是 HTTP,還有注意 WebGoat 的大小寫



左邊選單是依照 OWASP Top 10:2017 的順序,但是目前最新版已經是 OWASP Top 10:2021,WebGoat 最新版 8.2.2 尚未更上腳步。

首頁 - OWASP Top 10:2021

要結束程式,「命令提示字元」中按下 Ctrl-C 中斷程式即可。
執行   netstat   -nao   |   find   "8080" 檢查,有可能程式結束,Port 仍占用。

C:\>netstat -ano | find "8080"
  TCP    10.3.121.11:1354       10.3.121.11:8080       TIME_WAIT       0   
  TCP    10.3.121.11:1355       10.3.121.11:8080       TIME_WAIT       0
  TCP    10.3.121.11:1356       10.3.121.11:8080       TIME_WAIT       0
  TCP    10.3.121.11:1357       10.3.121.11:8080       TIME_WAIT       0
  TCP    10.3.121.11:1358       10.3.121.11:8080       TIME_WAIT       0

C:\>




電腦放一陣子,再查一次,占用情況會自動消失。

********************************************************************************

執行失敗

C:\>java   -jar   webgoat-server-8.2.2.jar

Error: Unable to access jarfile webgoat-server-8.2.2.jar   

C:\Users\Administrator>cd\webgoat

這個訊息是因為 webgoat-server-8.2.2.jar 不在目前目錄,請切換目錄到檔案所在目錄再執行。

********************************************************************************

測試:Windows Reboot,在啟動 WebGoat 時指定使用 Port 8070,結果不行,如下:

C:\WebGoat>java   -jar   webgoat-server-8.2.2.jar   --server.port=8070   --server.address=0.0.0.0
14:57:54.736 [main] INFO org.owasp.webgoat.StartWebGoat - Starting WebGoat with args: --server.port=8070
14:57:54.749 [main] ERROR org.owasp.webgoat.StartWebGoat - Port 127.0.0.1:8080 is already in use
Port 127.0.0.1:8080 is in use. Use environment value WEBGOAT_HSQLPORT to set a different value.

C:\WebGoat>

結果是 WebGoat 網站 和 HSQLDB (HyperSQL DataBase) 都改用了 Port 8070,還是搶。

********************************************************************************

啟動 WebWolf

有些挑戰需要運行本地網絡服務器。 WebWolf 可當攻擊者,解決 WebGoat 中的一些任務和挑戰。例如,一項任務可能要求提供文件或連接回自己的環境或接收電子郵件。為了在不連接到 Internet 的情況下運行 WebGoat,此工具稱為 WebWolf。

請另外新開一個「命令提示字元」視窗,因為原來的仍在執行中,沒有回到提示字元狀態下,執行下面 ( WebGoat 網站 和 資料庫用的 Port 要和上面啟動時設定相同,免得 WebWolf 找不到資料庫系統 )

C:\>SET   WEBGOAT_PORT=8080
C:\>SET   WEBGOAT_HSQLPORT=8081

C:\>cd C:\webgoat

C:\WebGoat>java   -Dfile.encoding=UTF-8   -jar   webwolf-8.2.2.jar  

執行WebGoat 的 -Dfile.encoding=UTF-8 非必須,但執行 WebWolf 則是必須。

如果找不到資料庫系統,可能會出現類似下面錯誤。

java.sql.SQLTransientConnectionException: connection exception: connection failure: org.hsqldb.HsqlException: connection exception

注意最後幾行訊息,表示使用 HTTP  Port 9090

2022-05-06 15:30:03.862  INFO 8368 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
2022-05-06 15:30:04.222  INFO 8368 --- [           main] o.s.b.a.e.web.EndpointLinksResolver      : Exposing 2 endpoint(s) beneath base path '/actuator'
2022-05-06 15:30:04.257  INFO 8368 --- [           main] io.undertow                              : starting server: Undertow - 2.2.4.Final
2022-05-06 15:30:04.268  INFO 8368 --- [           main] org.xnio                                 : XNIO version 3.8.0.Final
2022-05-06 15:30:04.279  INFO 8368 --- [           main] org.xnio.nio                             : XNIO NIO Implementation Version 3.8.0.Final
2022-05-06 15:30:04.368  INFO 8368 --- [           main] org.jboss.threads                        : JBoss Threads version 3.1.0.Final
2022-05-06 15:30:04.415  INFO 8368 --- [           main] o.s.b.w.e.undertow.UndertowWebServer     : Undertow started on port(s) 9090 (http)
2022-05-06 15:30:04.428  INFO 8368 --- [           main] org.owasp.webwolf.WebWolf                : Started WebWolf in 6.376 seconds (JVM running for 6.939)
2022-05-06 15:34:04.677  INFO 8368 --- [  XNIO-1 task-1] io.undertow.servlet                      : Initializing Spring DispatcherServlet 'dispatcherServlet'
2022-05-06 15:34:04.677  INFO 8368 --- [  XNIO-1 task-1] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
2022-05-06 15:34:04.679  INFO 8368 --- [  XNIO-1 task-1] o.s.web.servlet.DispatcherServlet        : Completed initialization in 1 ms

連上 ( 注意,是 HTTP,不是 HTTPS;WebWolf 的大小寫必須一致)
http://localhost:9090/WebWolf

會自動轉址到

http://localhost:9090/login





(完)

相關

[研究]OWASP WebGoat 8.2.2、Webwolf 8.2.2滲透測試學習平台安安裝、啟動
https://shaurong.blogspot.com/2022/05/owasp-webgoat-822webwolf-822.html

[研究] OWASP WebGoat 8.0 安裝
http://shaurong.blogspot.com/2018/06/owasp-webgoat-80.html

[研究] OWASP WebGoatFor.Net 安裝
http://shaurong.blogspot.com/2016/12/owasp-webgoatfornet.html

[研究] OWASP WebGoat 7.1 安裝
http://shaurong.blogspot.com/2016/12/owasp-webgoat-71.html

[研究] OWASP Zed Attack Proxy (ZAP) 2.4.2、2.6.0 滲透測試、弱點掃描工具安裝與試用
http://shaurong.blogspot.com/2015/10/owasp-zed-attack-proxy-zap-242.html

沒有留言:

張貼留言