越權(quán)漏洞筆記

基本概念

越權(quán)漏洞是Web應(yīng)用程序中一種常見的安全漏洞,它的威脅在于一個(gè)賬戶即可控制全站用戶數(shù)據(jù)。越權(quán)漏洞的成因主要是因?yàn)殚_發(fā)人員在對數(shù)據(jù)進(jìn)行增、刪、改、查詢時(shí)對客戶端請求的數(shù)據(jù)過分相信而遺漏了權(quán)限的判定。

水平越權(quán)( 橫向越權(quán))

水平越權(quán)指攻擊者嘗試訪問與他擁有相同權(quán)限的用戶資源。例如,用戶A和用戶B屬于同一角色,擁有相同的權(quán)限等級,他們能獲取自己的私有數(shù)據(jù)(數(shù)據(jù)A和數(shù)據(jù)B),但如果系統(tǒng)只驗(yàn)證了能訪問數(shù)據(jù)的角色,而沒有對數(shù)據(jù)做細(xì)分或者校驗(yàn),導(dǎo)致用戶A能訪問到用戶B的數(shù)據(jù)(數(shù)據(jù)B),那么用戶A訪問數(shù)據(jù)B的這種行為就叫做水平越權(quán)訪問。

水平越權(quán),多發(fā)生在一些能夠?qū)?shù)據(jù)進(jìn)行查詢、增、刪、改的地方。比如一些使用id來對對應(yīng)數(shù)據(jù)進(jìn)行操作的功能點(diǎn),如果此時(shí)沒有把數(shù)據(jù)的id和用戶的uid進(jìn)行綁定的話,就容易產(chǎn)生水平越權(quán)漏洞。

平時(shí)排查問題時(shí),可以使用Firefox瀏覽器F12中的網(wǎng)絡(luò)請求功能,對關(guān)鍵參數(shù)進(jìn)行修改替換,重新發(fā)送請求,查看響應(yīng)包的內(nèi)容來確認(rèn)是否存在水平越權(quán),如要進(jìn)行更多的測試,推薦使用burpsuite、fiddler等專業(yè)抓包工具。

垂直越權(quán)(縱向越權(quán))

非法獲取高權(quán)限級別用戶權(quán)限。比如:只隱藏URL未判斷訪問權(quán)限。在用戶認(rèn)證后只顯示給用戶認(rèn)證過的頁面和菜單選項(xiàng),而實(shí)際上這些僅僅是表示層的訪問控制而不能真正生效,攻擊者能夠很容易的就偽造請求直接訪問未被授權(quán)的頁面(如管理員功能)。

越權(quán)檢查列表

  1. 與前端交互的服務(wù)禁止直接使用前端傳遞的當(dāng)前用戶id(請求head或請求報(bào)文中的用戶id等) ,必須使用當(dāng)前用戶登錄會(huì)話憑證通過服務(wù)端交互獲取用戶ID。
  2. 前端傳遞私有數(shù)據(jù)id(如訂單號|聯(lián)系方式ID等) 禁止直接檢索數(shù)據(jù)庫ID并不與當(dāng)前用戶id校驗(yàn),而是需配合當(dāng)前登錄會(huì)話中的用戶ID&數(shù)據(jù)ID同時(shí)進(jìn)行檢索校驗(yàn)。
  3. 客服人員訪問數(shù)據(jù)時(shí),需通過權(quán)限系統(tǒng)校驗(yàn)當(dāng)前登錄的用戶是否有訪問該類數(shù)據(jù)的權(quán)限。
  4. 權(quán)限及身份校驗(yàn)必須在敏感數(shù)據(jù)處理接口中提前處理,而不能在前端拆分成幾個(gè)過程。
  5. 系統(tǒng)外部交互過程中如果需要防篡改,可將數(shù)據(jù)使用公私鑰+時(shí)間 進(jìn)行簽名校驗(yàn)。
  6. 控制服務(wù)訪問級別,避免對內(nèi)服務(wù)無意暴露在公網(wǎng)中。

研發(fā)保障制度

  • 評審的技術(shù)方案需要有安全部分的設(shè)計(jì),必須包括對外接口的權(quán)限控制設(shè)計(jì)。
  • 評審的測試用例,必須包括安全測試用例和越權(quán)測試用例。

越權(quán)訪問漏洞的修復(fù)方案

  1. [最優(yōu)方案]驗(yàn)證每次請求(URL、數(shù)據(jù)等資源)的用戶權(quán)限。建立基于角色的權(quán)限控制矩陣,實(shí)現(xiàn)“用戶”、“角色”、“權(quán)限”對照表。系統(tǒng)功能區(qū)域分離(普通用戶、管理員、公共訪問區(qū)等)。
  2. [次優(yōu)方案]增加隨機(jī)化參數(shù)(避免可預(yù)測)。使用難以預(yù)測的參數(shù)(如一次性token預(yù)先下發(fā)到客戶端,客戶端瀏覽器請求數(shù)據(jù)時(shí)帶上賬戶ID和一次性token),使攻擊者無法預(yù)測執(zhí)行操作。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容