什么是越權(quán)訪問漏洞?
越權(quán)訪問(Broken Access Control,簡稱BAC)是Web應(yīng)用程序中一種常見的漏洞,由于其存在范圍廣、危害大,被OWASP列為Web應(yīng)用十大安全隱患的第二名。
該漏洞是指應(yīng)用在檢查授權(quán)時(shí)存在紕漏,使得攻擊者在獲得低權(quán)限用戶賬戶后,利用一些方式繞過權(quán)限檢查,訪問或者操作其他用戶或者更高權(quán)限。越權(quán)漏洞的成因主要是因?yàn)殚_發(fā)人員在對數(shù)據(jù)進(jìn)行增、刪、改、查詢時(shí)對客戶端請求的數(shù)據(jù)過分相信而遺漏了權(quán)限的判定。
漏洞分類
- 水平越權(quán)訪問漏洞
水平越權(quán)訪問是一種“基于數(shù)據(jù)的訪問控制”設(shè)計(jì)缺陷引起的漏洞。由于服務(wù)器端在接收到請求數(shù)據(jù)進(jìn)行操作時(shí)沒有判斷數(shù)據(jù)的所屬人/所屬部門而導(dǎo)致的越權(quán)數(shù)據(jù)訪問漏洞。
有AB兩個(gè)賬戶屬于同級權(quán)限,A登入后可以使用一些方式例如傳B得ID可以查到B得數(shù)據(jù)。就是水平越權(quán)訪問
- 垂直越權(quán)訪問漏洞
垂直越權(quán)是一種“基于URL的訪問控制”設(shè)計(jì)缺陷引起的漏洞,又叫做權(quán)限提升攻擊。
很多系統(tǒng)在做權(quán)限訪問控制時(shí)僅僅做了展示層面得控制實(shí)際后端并未做權(quán)限校驗(yàn),那么假設(shè)一個(gè)低權(quán)限賬號(hào)登入后,可以通過猜測url得方式訪問到他不具有權(quán)限得URL
開發(fā)層面理解
對于以上兩種漏洞在開發(fā)層面得理解就可以劃分為
水平越權(quán)==數(shù)據(jù)權(quán)限
垂直越權(quán)==菜單權(quán)限
水平權(quán)限設(shè)計(jì)時(shí)關(guān)鍵數(shù)據(jù)不能由前端傳。
例如:例如根據(jù)訂單號(hào)查詢和用戶id查詢訂單時(shí),一定要加用戶id校驗(yàn)并且用戶id只能從后端獲取,假如你得訂單是有序得將會(huì)被人猜解,如果你沒有用戶id校驗(yàn)?zāi)敲磩e人得訂單信息也會(huì)被返回。(血得教訓(xùn):曾經(jīng)就有個(gè)同事因此被公司開除了)垂直權(quán)限,大部分管理系統(tǒng)基于RBAC權(quán)限管理,一定要嚴(yán)格按照權(quán)限控制體系進(jìn)行權(quán)限分配。