l Using anAccess Control Matrix
不同的用戶訪問權限不相同,題目要求我們找到能夠訪問AccountManager非管理員用戶,那麼我們只需要嘗試user和resoure的組合就可以了,經過嘗試,發現Larry用戶的身份是 [User, Manager],卻可以訪問Account Manager
l Bypass a PathBased Access Control Scheme
在列表中是我們能夠訪問的文件,題目要求我們訪問tomcat/conf/tomcat-users.xml
這裏我們需要使用WebScarab 工具,打開WebScarab 工具,發現她監聽的端口是8008,我們需要設置瀏覽器的代理,讓他的請求都轉發到webscarab中(具體設置就不說了)
然後打開webscarab控制檯,在intercept中把所有方法都選中,不過這裏只用到了post
接着在文件列表中隨便點擊一個文件,點擊view file按鈕,立刻彈出Edit Request窗口
經過觀察,發現File的值正好是我剛剛請求的文件
所以可以通過將File的值改爲我們要訪問的文件的路徑來訪問該文件,而此時我們是在WebGoat-5.3_RC1\tomcat\webapps\webgoat\lesson_plans\English目錄下,我們要訪問tomcat/conf/tomcat-users.xml,所以要將File的值改爲../../../../conf/tomcat-users.xml
點擊Accept changes
成功
l LAB: RoleBased Access Control
Ø Stage 1:Bypass Business Layer Access Control
題目要求我們使用tom的賬戶登錄,讓它擁有刪除的權限,而tom本身是不具備刪除的權限的,我用tom的賬號登錄後,發現tom的確是沒有刪除的權限的
接着,我繼續使用其他人的賬號登錄,發現Jerry擁有刪除的權限
我點擊DeleteProfile,使用webscarab抓包,在彈出的請求中發現action的值爲DeleteProfile
然後我重新用tom的賬號登錄,選擇列表中的tom,點擊searchStaff
將action的值改爲DeleteProfile,點擊accept changes
成功刪除tom的信息
Ø Stage 2: AddBusiness Layer Access Control
此題目叫我們修復上一步發現的漏洞,這道題需要developer版的webgoat,我在網上沒找到,就沒做。應該是要在服務器端加一個驗證,在調用DeleteProfile action時對用戶進行權限驗證。
Ø Stage 3:Bypass Data Layer Access Control
此題目叫我們讓tom的賬戶能夠看到其他人的profile
選擇tom cat,點擊viewProfile,使用代理查看請求信息
可以看到請求中有一個employee_id的參數,將他的值該成其他值,例如106,點擊accept,這樣我就看到了jerry的profile
Ø Stage 4: AddData Layer Access Control
此題和stage2同理
在url後面加上&admin=true,這樣可以看到左邊admin function多了幾個選項
我點擊user information,又回覆了原來的權限。重複上述操作,將鼠標停靠在user information上面,顯示的url爲:
http://localhost.:8080/webgoat/attack?Screen=205&menu=2000
接着將url改爲
http://localhost.:8080/webgoat/attack?Screen=205&menu=2000&admin=true