新聞中心
一、越權(quán)訪問(wèn)

創(chuàng)新互聯(lián)公司是一家專(zhuān)注于網(wǎng)站制作、成都網(wǎng)站制作與策劃設(shè)計(jì),張灣網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專(zhuān)注于網(wǎng)站建設(shè)10多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專(zhuān)業(yè)建站公司;建站業(yè)務(wù)涵蓋:張灣等地區(qū)。張灣做網(wǎng)站價(jià)格咨詢(xún):18980820575
越權(quán)訪問(wèn)(Broken Access Control,簡(jiǎn)稱(chēng)BAC)是Web應(yīng)用程序中一種常見(jiàn)的漏洞,由于其存在范圍廣、危害大,被OWASP列為Web應(yīng)用十大安全隱患的第二名。
1. 越權(quán)訪問(wèn)的產(chǎn)生
比如,某個(gè)訂單系統(tǒng),用戶(hù)可以查詢(xún)自己的訂單信息。A用戶(hù)查詢(xún)訂單時(shí),發(fā)送的HTTP請(qǐng)求中包含參數(shù)“orderid=A”,訂單系統(tǒng)取得orderid后最終會(huì)查詢(xún)數(shù)據(jù)庫(kù),查詢(xún)語(yǔ)句類(lèi)似于“select * fromtablename where orderid = A”。B用戶(hù)查詢(xún)訂單時(shí),發(fā)送的HTTP請(qǐng)求中包含參數(shù)“orderid=B”,系統(tǒng)查詢(xún)數(shù)據(jù)庫(kù)語(yǔ)句類(lèi)似于“select * fromtablename where orderid = B”。正常情況下,每個(gè)用戶(hù)只會(huì)查詢(xún)到自己的訂單。但是,當(dāng)B用戶(hù)將自己的HTTP請(qǐng)求參數(shù)修改為“orderid=A”,那么最終B用戶(hù)執(zhí)行的數(shù)據(jù)庫(kù)語(yǔ)句變成了“select * fromtablename whereorderid = A”,導(dǎo)致A的訂單信息被B用戶(hù)獲取到了。
一般來(lái)說(shuō),網(wǎng)站設(shè)計(jì)者會(huì)用戶(hù)的訪問(wèn)進(jìn)行權(quán)限校驗(yàn),確保用戶(hù)僅能訪問(wèn)到屬于自己的資源,但是業(yè)務(wù)復(fù)雜到一定程度之后,諸如此類(lèi)的數(shù)據(jù)如此之多,從訂單信息,到地址數(shù)據(jù)、支付信息等等,無(wú)一不需要小心處理。一旦有所疏漏,就會(huì)產(chǎn)生越權(quán)訪問(wèn)漏洞。
2. 越權(quán)訪問(wèn)的種類(lèi)
越權(quán)訪問(wèn)分為垂直越權(quán)訪問(wèn)、水平越權(quán)訪問(wèn)和交叉越權(quán)。
垂直越權(quán)是指不同用戶(hù)級(jí)別之間的越權(quán),如普通用戶(hù)執(zhí)行管理員用戶(hù)的權(quán)限。水平越權(quán)是指相同級(jí)別用戶(hù)之間的越權(quán)操作。
(1) 水平越權(quán)
假設(shè)用戶(hù)A和用戶(hù)B屬于同一角色X,擁有相同的權(quán)限等級(jí),他們能獲取自己的私有數(shù)據(jù)(數(shù)據(jù)A和數(shù)據(jù)B),但如果系統(tǒng)只驗(yàn)證了能訪問(wèn)數(shù)據(jù)的角色,而沒(méi)有對(duì)數(shù)據(jù)做細(xì)分或者校驗(yàn),導(dǎo)致用戶(hù)A能訪問(wèn)到用戶(hù)B的數(shù)據(jù)(數(shù)據(jù)B),那么用戶(hù)A訪問(wèn)數(shù)據(jù)B的這種行為就叫做水平越權(quán)訪問(wèn)。
(2) 垂直越權(quán)
垂直越權(quán)又叫做權(quán)限提升攻擊。其原理是由于Web應(yīng)用沒(méi)有做權(quán)限控制,或僅僅在菜單上做了權(quán)限控制,導(dǎo)致惡意用戶(hù)只要猜測(cè)其他管理頁(yè)面的URL,就可以訪問(wèn)或控制其他角色擁有的數(shù)據(jù)或頁(yè)面,達(dá)到權(quán)限提升的目的。
3. 越權(quán)訪問(wèn)的測(cè)試
本文以三員系統(tǒng)為例,首先介紹一下三員系統(tǒng)。
三員系統(tǒng)初始就有三個(gè)不同權(quán)限的管理員:系統(tǒng)管理員、安全保密管理員、安全審計(jì)員,三員之間是平級(jí)的但主體功能各不相同。此外根據(jù)不同Web系統(tǒng)的需求還會(huì)出現(xiàn)三員用戶(hù)的子用戶(hù)和普通用戶(hù),普通用戶(hù)中可能還會(huì)分出不同權(quán)限的用戶(hù)(如:操作員、監(jiān)控員等等)。
三員系統(tǒng)為了滿(mǎn)足保密產(chǎn)品的安全需求導(dǎo)致用戶(hù)權(quán)限劃分細(xì)致且眾多,相較于普通系統(tǒng)權(quán)限判斷更加繁多也更需細(xì)致,因此權(quán)限控制難度更高,導(dǎo)致三員系統(tǒng)出現(xiàn)越權(quán)漏洞的概率越高
(1) 三員之間的交叉越權(quán)
登錄A管理員,執(zhí)行A管理員的功能x,抓取保存x功能包。退出A管理員,登錄B管理員,抓取B管理員的COOKIE,將x功能包中的COOKIE替換成B的COOKIE,發(fā)送x功能包。通過(guò)響應(yīng)包或到x功能的Web頁(yè)面處查看請(qǐng)求是否成功,成功則存在越權(quán)漏洞。
以上是越權(quán)通用的測(cè)試方式,但實(shí)際測(cè)試中要注意以下幾點(diǎn):
- 一般Web應(yīng)用是通過(guò)COOKIE里的信息來(lái)認(rèn)證用戶(hù)身份的,但并不是所用Web應(yīng)用的是如此的。遇到身份認(rèn)證不是COOKIE的Web應(yīng)用,要替換的就是該系統(tǒng)認(rèn)證身份的地方而不是COOKIE。如下圖就是COOKIE認(rèn)證登錄狀態(tài),jitabc認(rèn)證用戶(hù)身份。
- 遇到有COOKIE共用(多次登錄同一或不同用戶(hù)COOKIE相同)的Web應(yīng)用時(shí),因?yàn)镃OOKIE不變并不需要替換COOKIE直接替換Web的當(dāng)前用戶(hù)就能直接發(fā)送請(qǐng)求來(lái)測(cè)試。但這時(shí)候未授權(quán)漏洞和COOKIE退出不清除的問(wèn)題會(huì)影響越權(quán)漏洞的驗(yàn)證,要在驗(yàn)證越權(quán)前先確定未授權(quán)漏洞和COOKIE退出不清除這兩個(gè)問(wèn)題不存在。
- 三員之間的交叉越權(quán)最常出現(xiàn)在同一功能不同權(quán)限處。如:系統(tǒng)管理員和安全保密管理員都有用戶(hù)這個(gè)功能模塊,但僅有系統(tǒng)管理員有添加用戶(hù)的功能,僅有安全保密管理員有賦予用戶(hù)權(quán)限的功能,在程序?qū)δ苣K進(jìn)行身份驗(yàn)證但對(duì)其中的子功能缺乏驗(yàn)證時(shí)就會(huì)出現(xiàn)越權(quán)漏洞。
(2) 三員管理員的垂直越權(quán)
本漏洞是在用戶(hù)有某一功能的權(quán)限且增刪改查的值有限制但限制不完善的情況下,會(huì)出現(xiàn)的問(wèn)題。
例:
三員管理員可以添加自己權(quán)限的子用戶(hù)。抓取系統(tǒng)管理員的用戶(hù)角色添加功能,其中存在roles=1的字段,可能是角色控制的值,修改為roleid=2繼續(xù)發(fā)送發(fā)現(xiàn)請(qǐng)求成功,在Web端查看該用戶(hù)已被賦予安全管理員角色,很明顯存在越權(quán)漏洞。
注意:
- 在實(shí)際測(cè)試中可能不會(huì)出現(xiàn)roleid這樣明顯的角色字眼,這時(shí)候就要認(rèn)真分析和嘗試出請(qǐng)求中每個(gè)字段的意義,在進(jìn)行測(cè)試。
- 該漏洞常出現(xiàn)在用戶(hù)添加、賦予角色等跟用戶(hù)角色相關(guān)但有限制的地方,一旦程序限制不完善就會(huì)出現(xiàn)漏洞。
(3) 三員子用戶(hù)/普通用戶(hù)的垂直越權(quán)
登錄C管理員,執(zhí)行C管理員的功能y,抓取保存y功能包。退出C管理員,登錄D三員子用戶(hù)/普通用戶(hù),抓取D的COOKIE,將y功能包中的COOKIE替換成D的COOKIE,發(fā)送y功能包。通過(guò)響應(yīng)包或到y(tǒng)功能的Web頁(yè)面處查看請(qǐng)求是否成功,成功則存在越權(quán)漏洞。
與1.3.1類(lèi)似,不同是的利用低權(quán)限用戶(hù)的身份執(zhí)行高權(quán)限用戶(hù)獨(dú)有的功能。
(4) 三員子用戶(hù)/普通用戶(hù)的水平越權(quán)
登錄E用戶(hù)執(zhí)行E用戶(hù)的功能z,抓取z功能包將其中的用戶(hù)識(shí)別id修改為F用戶(hù)的(如E修改密碼時(shí)抓取到功能包:username=E&passwd=123,修改成username=F&passwd=123),發(fā)送請(qǐng)求測(cè)試F用戶(hù)對(duì)應(yīng)的功能是否被修改,成功修改則存在越權(quán)漏洞。
二、未授權(quán)訪問(wèn)
未授權(quán)訪問(wèn)漏洞可以理解為需要安全配置或權(quán)限認(rèn)證的地址、授權(quán)頁(yè)面存在缺陷導(dǎo)致其他用戶(hù)可以直接訪問(wèn)從而引發(fā)重要權(quán)限可被操作、數(shù)據(jù)庫(kù)或網(wǎng)站目錄等敏感信息泄露。
常見(jiàn)的第三方未授權(quán)訪問(wèn)漏洞:
- MongoDB 未授權(quán)訪問(wèn)漏洞
- Redis 未授權(quán)訪問(wèn)漏洞
- Memcached 未授權(quán)訪問(wèn)漏洞CVE-2013-7239
- JBOSS 未授權(quán)訪問(wèn)漏洞
- VNC 未授權(quán)訪問(wèn)漏洞
- Docker 未授權(quán)訪問(wèn)漏洞
- ZooKeeper 未授權(quán)訪問(wèn)漏洞
- Rsync 未授權(quán)訪問(wèn)漏洞
以上都第三方的未授權(quán)漏洞,如果Web系統(tǒng)中有用到以上組件,就要及時(shí)更新該組件修復(fù)漏洞。Web應(yīng)用本身也存在未授權(quán)漏洞,常見(jiàn)有以下兩類(lèi):
- 沒(méi)有作任何的用戶(hù)身份認(rèn)證手段。
- 一些特定的頁(yè)面或文件未做認(rèn)證。
第一類(lèi)問(wèn)題的測(cè)試只需要隨意抓取用戶(hù)功能,將其中的用戶(hù)認(rèn)證信息(COOKIE等)清空或修改然后發(fā)送,若請(qǐng)求成功便存在未授權(quán)漏洞。
第二類(lèi)問(wèn)題測(cè)試方式與第一類(lèi)問(wèn)題一樣,只是特定的頁(yè)面或文件才存在。一般常見(jiàn)于:可文件、用戶(hù)手冊(cè)、Web應(yīng)用新添加的功能頁(yè)面。
三、認(rèn)證信息失效機(jī)制問(wèn)題
用戶(hù)正常注銷(xiāo)退出后,用戶(hù)的認(rèn)證信息不會(huì)立刻失效。用戶(hù)認(rèn)為自己已經(jīng)退出賬號(hào),但在服務(wù)端中保留用戶(hù)登錄狀態(tài),依然可以用認(rèn)證信息進(jìn)行請(qǐng)求。因此在要求單次登錄有效的應(yīng)用系統(tǒng)中,用戶(hù)正常退出或注銷(xiāo)應(yīng)將服務(wù)端認(rèn)證信息進(jìn)行注銷(xiāo)。
四、結(jié)語(yǔ)
在上述安全問(wèn)題測(cè)試方法的前提是獲取到其他用戶(hù)認(rèn)證信息,而實(shí)際應(yīng)用場(chǎng)景中需要獲取其他管理員認(rèn)證信息雖然很困難,但在現(xiàn)今層出不窮的網(wǎng)絡(luò)攻擊手段下,我們不得不關(guān)注這些安全問(wèn)題的本身。造成“三員”中越權(quán)問(wèn)題的主要原因在于對(duì)于身份認(rèn)證不嚴(yán)格,角色和功能綁定存在遺漏,因此在企業(yè)重要的應(yīng)用系統(tǒng)中建議在服務(wù)端進(jìn)行用戶(hù)和角色的一對(duì)一驗(yàn)證,角色和功能的一對(duì)一驗(yàn)證,或者用戶(hù)和功能的一對(duì)一驗(yàn)證。
本文標(biāo)題:“三員系統(tǒng)”中常見(jiàn)的越權(quán)問(wèn)題
網(wǎng)址分享:http://m.5511xx.com/article/ccsddih.html


咨詢(xún)
建站咨詢(xún)
