iT邦幫忙

2026 iThome 鐵人賽

DAY 20
0
Security

仿生人是否會夢見網頁山羊? 資安小白的30天Webgoat闖關紀錄系列 第 20 篇

[DAY20]仿生人是否會夢見網頁山羊? --Missing Function Level Access Control

  • 分享至 

  • xImage
  •  

今天是A1 Broken Access Control的第三章,昨天的內容除了最後的封包都還算簡單,今天的感覺難度又回來了

什麼是Missing Function Level Access Control(缺少功能級存取控制)?

一個網頁要限制使用者使用功能,除了把功能從畫面上隱藏起來外,也還是必須要驗證使用者身分權限,如果不這麼做,攻擊者還是有可能靠分析前端程式碼(如F12的開發者工具)找到進入指定功能的方法並使用該功能,這便是MFLAC,與IDOR不同的是,MFLAC不需要使用者輸入,而是網頁端主動暴露出來

Webgoat A1 Missing Function Level Access Control 號碼2 (題目1)

https://ithelp.ithome.com.tw/upload/images/20261003/20184109gg4y92JoX3.png

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

https://ithelp.ithome.com.tw/upload/images/20261003/20184109j8OcxjEHQU.png

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

https://ithelp.ithome.com.tw/upload/images/20261003/20184109PChjz6TU8V.png

https://ithelp.ithome.com.tw/upload/images/20261003/20184109vsfzfz98hv.png

https://ithelp.ithome.com.tw/upload/images/20261003/20184109kr9WecQSkg.png

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

https://ithelp.ithome.com.tw/upload/images/20261003/20184109uHPKgTSrDd.png

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

https://ithelp.ithome.com.tw/upload/images/20261003/20184109oOXNTGMBNF.png

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

https://ithelp.ithome.com.tw/upload/images/20261003/20184109kWPJPhBWeK.png

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

Webgoat A1 Missing Function Level Access Control 號碼3 (題目2)

https://ithelp.ithome.com.tw/upload/images/20261003/20184109TSKxQSDqrE.png

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

https://ithelp.ithome.com.tw/upload/images/20261003/20184109DsEVCg1vCR.png

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

https://ithelp.ithome.com.tw/upload/images/20261003/20184109em8EN6F2Db.png

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

Webgoat A1 Missing Function Level Access Control 號碼4 (題目3)

https://ithelp.ithome.com.tw/upload/images/20261003/20184109XuedYfWj6l.png

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

https://ithelp.ithome.com.tw/upload/images/20261003/20184109YLJbU1Wv5H.png

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

https://ithelp.ithome.com.tw/upload/images/20261003/2018410904qs2ZpAbr.png

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

https://ithelp.ithome.com.tw/upload/images/20261003/20184109P1fjSBFSSu.png

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

https://ithelp.ithome.com.tw/upload/images/20261003/20184109OoYvATpo3H.png

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

https://ithelp.ithome.com.tw/upload/images/20261003/20184109y5LEwXH6O4.png

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

https://ithelp.ithome.com.tw/upload/images/20261003/20184109ANzvFw7hd9.png

https://ithelp.ithome.com.tw/upload/images/20261003/20184109Fj5nPYAAbV.png

好耶,成功!

明日內容: Spoofing an Authentication Cookie


上一篇
[DAY19]仿生人是否會夢見網頁山羊? -- Insecure Direct Object References
系列文
仿生人是否會夢見網頁山羊? 資安小白的30天Webgoat闖關紀錄 共 20 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言