今天是A1 Broken Access Control的第三章,昨天的內容除了最後的封包都還算簡單,今天的感覺難度又回來了
一個網頁要限制使用者使用功能,除了把功能從畫面上隱藏起來外,也還是必須要驗證使用者身分權限,如果不這麼做,攻擊者還是有可能靠分析前端程式碼(如F12的開發者工具)找到進入指定功能的方法並使用該功能,這便是MFLAC,與IDOR不同的是,MFLAC不需要使用者輸入,而是網頁端主動暴露出來

這題要我們找出選單中隱藏的兩個選項,那麼我們就用F12開發者工具的Inspector來試試看

可以利用畫面上藍色部分來輔助判斷這是哪一部份的代碼加快速度(中間我會跳過一些圖來避免當水字數)



這裡我們找到隱藏起來的部分了,接著點開來看看

能看到裡面有admin才會顯示的功能,Config和Users, 這也就是我們的答案了(大小寫記得打對)

試著刪掉那行hidden-menu-item看看會怎麼樣

能看到隱藏功能消失後,Admin按鈕真的跳出來了

這題要我們找出Jerry的Hash值,我們可以先從剛剛找到的兩個按鈕下手,點看看Users

Uhh......報錯了,往下滑可以發現原因是因為沒有webgoat/templates/list_users.html這個網頁,那讓我們用另外一種方法,試著看看能不能獲取到類似json之類的純文字資料
截取我們剛剛請求的封包,在裡面加入一行Content-Type: application/json

好ㄟ,拿到我們要的Jerry的Hash值了

第四題,這題一樣要拿到jerry的hash值,我已經先把按鈕隱藏去掉了,先試試看剛剛的方法,擷取封包後加上Content-Type

可以看到我們被攔住了,這題果然沒那麼簡單
看起來我們真的只能搞一個管理員帳號了
先把user那邊的GET改成POST,在下方多一個空字串輸入串來看我們要填入甚麼才能把自己改成管理員

在username,password裡面隨便填一點東西,在admin那邊填true,看看有沒有辦法創一個新admin帳號

回到原本的地方用GET看一下有沒有成功加入

能看到我們的叫做apple的admin帳號真的出現了,現在我們來加入自己的帳號

加入後,我們再來看看這次我們有沒有辦法查到users-admin-fix的資料


好耶,成功!