水平越权与垂直越权
文章目錄
- 越權(quán)漏洞簡(jiǎn)介
- 水平越權(quán)
- 概念
- 常見場(chǎng)景
- 實(shí)例
- 垂直越權(quán)
- 概念
- 常見場(chǎng)景
- 實(shí)例
越權(quán)漏洞簡(jiǎn)介
越權(quán),顧名思義,就是超出了權(quán)限或權(quán)力范圍。多數(shù)WEB應(yīng)用都具備權(quán)限劃分和控制,但是如果權(quán)限控制功能設(shè)計(jì)存在缺陷,那么攻擊者就可以通過這些缺陷來訪問未經(jīng)授權(quán)的功能或數(shù)據(jù),這就是我們通常說的越權(quán)漏洞。攻擊者越權(quán)后就可以進(jìn)行一些操作,例如查看敏感信息、進(jìn)行一些增刪改查的
操作等等。
越權(quán)漏洞是一種很常見的邏輯安全漏洞。是由于服務(wù)器端對(duì)客戶提出的數(shù)據(jù)操作請(qǐng)求過分信任,忽略了對(duì)該用戶操作權(quán)限的判定,導(dǎo)致修改相關(guān)參數(shù)就可以擁有了其他賬戶的增、刪、查、改功能,從而導(dǎo)致越權(quán)漏洞。
水平越權(quán)
概念
水平越權(quán)指的是攻擊者嘗試訪問與他擁有相同權(quán)限的用戶的資源,怎么理解呢?比如某系統(tǒng)中有個(gè)人資料這個(gè)功能,A賬號(hào)和B賬號(hào)都可以訪問這個(gè)功能,但是A賬號(hào)的個(gè)人信息和B賬號(hào)的個(gè)人信息不同,可以理解為A賬號(hào)和B賬號(hào)個(gè)人資料這個(gè)功能上具備水平權(quán)限的劃分。此時(shí), A賬號(hào)通過攻擊手段訪問了B賬號(hào)的個(gè)人資料,這就是水平越權(quán)漏洞。
說人話就是平民之間的明爭(zhēng)暗斗。
常見場(chǎng)景
1、基于用戶身份的ID
在使用某個(gè)功能時(shí)通過用戶提交的身份ID (用戶ID、賬號(hào)、手機(jī)號(hào)、證件號(hào)等用戶唯一標(biāo)識(shí))來訪問或操作對(duì)應(yīng)的數(shù)據(jù)。
2、基于對(duì)象ID
在使用某個(gè)功能時(shí)通過用戶提交的對(duì)象ID (如訂單號(hào)、記錄號(hào))來訪問或操作對(duì)應(yīng)的數(shù)據(jù)。
3、基于文件名
在使用某個(gè)功能時(shí)通過文件名直接訪問文件,最常見于用戶上傳文件的場(chǎng)景。
實(shí)例
實(shí)驗(yàn)環(huán)境為 pikachu 靶場(chǎng) over permission 模塊水平越權(quán)
我們已事先知道三個(gè)賬號(hào):
lucy/123456
lili/123456
kobe/123456
怎么實(shí)現(xiàn)水平越權(quán)呢?首先我們隨便登錄一個(gè)賬號(hào),比如 lucy,同時(shí)抓包,發(fā)現(xiàn)顯示了 username & password
放包肯定是能登陸上去的。那我們把 username 改成 kobe 或者 lili 后放包呢?
放包發(fā)現(xiàn)成功登陸了 kobe 的賬戶
這就成功實(shí)現(xiàn)了水平越權(quán)。想想看,你作為一個(gè)平民玩家,隨便改了個(gè) id 就掌握了其他平民(甚至可能是氪金大佬)的信息,豈不是…
我們做點(diǎn)更壞的事,能不能順帶把 kobe 的密碼也一塊改了呢?
放包,發(fā)現(xiàn)登錄失敗。刷新一下,用設(shè)置的密碼登錄,還是失敗,說明此處是不能通過水平越權(quán)更改其他用戶的信息的。
垂直越權(quán)
概念
垂直越權(quán)是不同級(jí)別之間或不同角色之間的越權(quán),垂直越權(quán)還可以分為向上越權(quán)和向下越權(quán)。向上越權(quán)指的是一個(gè)低級(jí)別用戶嘗試訪問高級(jí)別用戶的資源,比如說某個(gè)系統(tǒng)分為普通用戶和管理員用戶,管理員有系統(tǒng)管理功能,而普通用戶沒有,那我們就可以理解成管理功能具備垂直權(quán)限劃分,如果普
通用戶能利用某種攻擊手段訪問到管理功能,那我們就稱之為向上越權(quán)(就是以下犯上)。向下越權(quán)是一個(gè)高級(jí)別用戶訪問低級(jí)別用戶信息(那這也是不行的,我們每個(gè)人都要有私生活和小秘密)。
常見場(chǎng)景
1、未認(rèn)證賬戶訪問無需認(rèn)證就能訪問該功能
2、不具備某個(gè)功能權(quán)限的賬戶認(rèn)證后成功訪問該功能
實(shí)例
實(shí)驗(yàn)環(huán)境為 pikachu 靶場(chǎng) over permission 模塊垂直越權(quán)
我們已事先知道兩個(gè)賬號(hào):
admin/123456
pikachu/000000
admin是超級(jí)boss(管理員)
先分別登錄看看,再確定出題人想要我們實(shí)現(xiàn)的是向上越權(quán)還是向下越權(quán)
首先是admin
再是pikachu
發(fā)現(xiàn)唯一的不同是管理員賬戶多了一個(gè)添加用戶的功能。猜測(cè)此處是要不使用管理員賬戶來獲取添加用戶的功能。
我們先在登錄 pikachu 的時(shí)候抓個(gè)包看看能不能更改 admin 的密碼
發(fā)現(xiàn)登錄失敗,說明通過普通用戶改管理員密碼是不行的
經(jīng)過排查初步確定是添加用戶這個(gè)板塊存在越權(quán)了,url是
http://192.168.244.1/pikachu/vul/overpermission/op2/op2_admin_edit.php
查看 op2_admin_edit.php 文件代碼
發(fā)現(xiàn)只判斷了是否登陸,沒有驗(yàn)證級(jí)別,確實(shí)存在越權(quán)
如何實(shí)現(xiàn)越權(quán)呢?我們只需要重新登入這個(gè)板塊,把url改成
http://192.168.244.1/pikachu/vul/overpermission/op2/op2_admin_edit.php即可
這樣,即使不登陸管理員賬戶,也可以添加用戶
總結(jié)
- 上一篇: LED、LCD背光源、CCFL
- 下一篇: 【调剂】拟接收调剂——安徽工业大学冶金工