概述
由於沒有對用戶權限進行嚴格的判斷
導致低權限的賬號(比如普通用戶)可以去完成高權限賬號(比如超管)范圍內的操作
水行越權:A用戶和B用戶屬於同一級別用戶,但各自不能操作對方個人信息。A用戶如果越權操作B用戶個人信息的情況稱為水行越權操作。
垂直越權:A用戶權限高於B用戶,B用戶越權操作A用戶的權限的情況稱為垂直越權。
越權漏洞屬於邏輯漏洞,是由於權限校驗的邏輯不夠嚴謹導致的
每個應用系統其用戶對應的權限是根據其業務功能划分的,而每個企業的業務又都是不一樣的
因此越權漏洞很難通過掃描工具發現,往往需要通過手動進行測試
水平越權
我們先登錄一下,可用賬號如下:
lucy/123456,lili/123456,kobe/123456
登錄之后我們點擊 “點擊查看個人信息” 就能查看個人信息
在這里實際上是通過一個 GET 請求,將要查詢的用戶信息傳遞到了后台

如果將 username 的值修改為其他內容,是否可以顯示其他人的信息?
我們把 lucy 修改為 lili,提交請求后我們就能查看 lili 的信息,說明是存在水平越權的漏洞

垂直越權
我們先登錄超級管理員的賬號
這里有兩個用戶admin/123456,pikachu/000000。admin是超級管理員
打開 BurpSuite 抓包,然后添加一個用戶

把這個請求發送到 Repeater 中,然后退出管理員賬號,重放這個數據包,這時候用戶是會添加失敗的,因為沒有登錄狀態
登錄普通用戶賬號,取出當前賬號的Cookie
用上圖中的Cookie修改我們剛剛發送到 Repeater 中那個數據包的 Cookie,再重放這個數據包。這時候就添加了另一個用戶,第一個是超級管理員添加的;另一個是普通用戶重放超級管理員的數據包添加的。

后台沒有判斷發送這個數據包的用戶權限,而是直接執行了
