[Security] 在 Mac 上執行 WebGoat,練習網頁的滲透測試
最近公司舉辦找軟體漏洞的比賽,也有一些訓練課程,
像 WebGoat 就是拿來練功的一個好東西~
公司有提供已經裝好 WebGoat 的虛擬機器,不過其實 WebGoat 很好安裝,
下面就直接說明如何在 Mac 上執行 WebGoat 吧~
1. 下載 WebGoat Jar 檔案
到 OWASP WebGoat Project 網頁,
可以找到目前最新的 The OWASP WebGoat 7.1 Release,找適合自己平台的安裝包來下載~
像我抓的是不含 JRE,可以給 Linux/Mac 通用的 webgoat-container-7.1-exec.jar~
2. 執行 WebGoat
執行 java -jar webgoat-container-7.1-exec.jar,
就會在本機把 WebGoat 執行起來,並且會綁定 8080 這個 port~
接著到瀏覽器打 http://localhost:8080/WebGoat,就能看到 WebGoat 的登入畫面了~
想做入侵練習的話,用 guest/guest 登入:
3. 開始練習吧
下面拿 WebGoat 的其中一題來說明吧~
這個題目很簡單,全部有五種獎品,
根據你的使用者代號而決定你可以有哪些獎品。
入侵者要試著取得比預計還要多的獎品:
輸入題目給的使用者代號 836239 看看…
只出現了前三個獎品可以挑選:
WebGoat 的題目解法可以很多元,就如同駭客攻擊可以有許多手法一樣。
同樣的這一題,你可能有下面幾種選擇:
- 讓網頁出現更多獎品選項
- 把原有的選項改成價值更高的獎品
- 找出本來就有更多獎品的使用者代號
- 用 SQL injection 直接修改資料庫,讓使用者預設就有更多獎品
- 用 SQL injection 直接修改資料庫,讓低價值的獎品變貴
- … 可能還有許多方法 …
不同的方法會有不同的難度,也可能需要不同的工具~
我這邊選擇的是第 2 種方法,在這題裡利用 Chrome 內建的開發者工具就能搞定了~
開啟 Chrome > 更多工具 > 開發者工具,到 Network 分頁,
找到送出表單時的那個連線,可以發現送出了 check1001~1003 三個獎項:
到 Elements 分頁看一下網頁原始碼,
這幾個 check1001~1003 就是獎品選取框的代號:
直接把 check1002 改成 check1004,check1003 改成 check1005,
這樣就等於有 check1001, 1004, 1005 可以選了~
但至於我怎麼知道第 4 和第 5 個獎品會是 check1004 和 check1005 呢?
這其實就是看它命名的規律性、以及經驗了:
改好之後,一樣將 3 個獎項都選取起來送出,
可以發現送出的表單中,的確是變成 1001 和 1004、1005 了:
而這題就過關了,顯見伺服器端並沒有對資料再做驗證,
我們偷改的資料它也會吃:
這是一個很簡單的 WebGoat 題目,之後再陸續分享其他有做的題目吧~