pikachu-越權漏洞源碼分析及修復

概述

在這裏插入圖片描述

over permission源碼分析

水平越權

登陸lucy賬號,查看個人信息
在這裏插入圖片描述
退出lucy賬號
在這裏插入圖片描述
登陸kobe賬號,查看個人信息
在這裏插入圖片描述
我們發現查看個人信息的url有規律,查看kobe個人信息的的url爲http://localhost/pikachu/vul/overpermission/op1/op1_mem.php?username=kobe&submit=點擊查看個人信息
查看lucy個人信息的的url爲
http://localhost/pikachu/vul/overpermission/op1/op1_mem.php?username=lucy&submit=點擊查看個人信息

現在kobe是登錄狀態,lucy是未登錄,但是在訪問查看lucy個人信息的url,可以看到lucy的個人信息。由此存在水平越權漏洞。
在這裏插入圖片描述
代碼分析
查看信息的頁面:
在這裏插入圖片描述
跟進check_op_login函數,函數只檢查了isset($_SESSION[‘op’][‘username’]) && isset($_SESSION[‘op’][‘password’])在這裏插入圖片描述再去看看登陸界面的代碼:不管是lucy還是kobe,登陸之後都設置$_SESSION[‘op’][‘username’] 和 $_SESSION[‘op’][‘password’]
在這裏插入圖片描述
以上,存在越權漏洞,因爲在查看信息的界面,只判斷是否登陸,沒有判斷是誰登陸。

垂直越權

在這裏插入圖片描述
先登錄pikachu賬號,發現只有查看權限
在這裏插入圖片描述
登陸admin賬號,發現有查看和添加權限
在這裏插入圖片描述
admin賬號隨意添加一個會員,
在這裏插入圖片描述
這裏是這次添加會員的請求包,之後會用到
在這裏插入圖片描述
現在退出高權限的admin賬號,登陸低權限的pikachu賬號,我們試試能不能用低權限的賬號越權做添加會員用戶的操作。
pikachu賬號登陸之後,重發剛纔添加會員的請求包,但是把cookie改成piakchu賬號的cookie。

在這裏插入圖片描述
發現添加成功
在這裏插入圖片描述
代碼分析
op2_login.php
在這裏插入圖片描述
op2_admin.php
在這裏插入圖片描述
op2_user.php
在這裏插入圖片描述
由admin.php和user.php得知,在只登陸pikachu賬號而未登錄admin賬號時,訪問admin的頁面是訪問不成功的,因爲admin.php有檢驗賬號的level級別。

我們再看看添加賬號的頁面代碼:
在這裏插入圖片描述沒有檢驗level級別,才導致越權存在。

修復方案

對權限進行嚴格的校驗

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章