思維導圖

知識點
水平越權,垂直越權,未授權訪問
解釋,原理,檢測,利用,防御等
水平越權:通過更換的某個ID之類的身份標識,從而使得A賬號獲取(修改,刪除等)B賬號的數據。
垂直越權:通過低權限身份的賬號,發送高權限賬號才能有的請求,獲得其高權限的操作。
未授權訪問:通過刪除請求中的認證信息后重放該請求,依舊可以訪問或者完成操作。
原理
1.前端安全造成:界面
判斷用戶等級后,代碼界面部分進行可選顯示
2.后端安全造成:數據庫
user表(管理員和普通用戶同表)
id,username,password,usertype
1,admin,123456,1
2,xiaodi,111111,0
登錄用戶admin或xiaodi是,代碼是如何驗證級別?(usertype判斷)
如果在訪問網站數據包中有傳輸用戶的編號、用戶組編號或類型編號的時候,
那么嘗試對這個值進行修改,就是測試越權漏洞的基本。
修復防御方案
1.前后端同時對用戶輸入信息進行校驗,雙重驗證機制
2.調用功能前驗證用戶是否有權限調用相關功能
3.執行關鍵操作前驗證用戶身份,驗證用戶是否具備操作數據的權限
4.加密資源ID,防止攻擊者枚舉ID,敏感數據特殊化處理
5.永遠不要相信來自用戶的輸入,對可控參數進行嚴格的檢查與過濾

本課重點:
- 案例1:pikachu-本地水平垂直越權演示-漏洞成因
- 案例2:墨者學院-身份認證失效漏洞實戰-漏洞成因
- 案例3:越權檢測-小米范越權漏洞檢測工具-工具使用
- 案例4:越權檢測-Burpsuite插件Authz安裝測試-插件使用
- 案例5:越權檢測-secscan-authcheck安裝測試-工具使用
案例1:pikachu-本地水平垂直越權演示-漏洞成因
水平越權演示
<1>kobe登錄系統后,點擊查看個人信息,可以看到自己的手機,住址,郵箱等敏感信息。

<2>抓包,將username改為lucy,頁面顯示lucy的個人信息,成功水平越權。


原理:登錄時判斷級別,根據級別不同,顯示不同的功能頁面。在添加用戶時,后台只判斷了用戶登錄狀態,並未驗證級別,所以存在越權漏洞。
垂直越權演示
<1>管理員有查看、添加、刪除用戶的權限,而普通用戶只有查看權限。
<2>管理員登錄系統,添加一個用戶,抓包得到添加請求A。
<3>注銷管理員,登錄普通用戶,得到普通用戶的PHPSESSID。
<4>在請求A中替換PHPSESSID值為普通用戶的PHPSESSID,成功添加用戶。存在垂直越權。

在垂直越權實戰中,可能我們只有普通用戶的權限,沒有管理員權限,所以也不知道管理員添加用戶的數據包形式,這時我們該什么辦呢?
- 1.普通用戶前端有操作界面可以抓取數據包
- 2.通過網站源碼本地搭建自己去模擬抓取(已知源碼情況下)
- 3.盲猜
案例2:墨者學院-身份認證失效漏洞實戰-漏洞成因
靶場地址:https://www.mozhe.cn/bug/detail/eUM3SktudHdrUVh6eFloU0VERzB4Zz09bW96aGUmozhe

<1>進入靶場后,界面如下,已知測試賬戶test/test,需要獲取馬春生的個人信息。

<2>登錄test/test后,可以查看test用戶的個人信息。

<3>抓包分析,找到查看個人信息的數據包。修改card_id值的最后2位,相應地會返回不用用戶的個人信息。

<4>查看首頁代碼,可以找到馬春生用戶的ID

<5>修改card_id值為20128880316,成功獲取到馬春生的的個人信息。

<6>用戶密碼是用md5加密的,去加密網站解密,成功得到馬春生的密碼。

<7>使用賬號m233241/9732343登錄,確認是馬春生賬戶,成功拿到本關key。

<8>還可以使用bp的intruder模塊,將card_id值的最后2位改為00-99,可以遍歷所有的用戶。

案例3:越權檢測-小米范越權漏洞檢測工具-工具使用
privilegechecker下載地址:http://pan.baidu.com/s/1pLjaQKF
小米范越權漏洞檢測工具主要是檢測網站越權漏洞的工具。
此工具請使用Java 1.8以上版本運行。
檢測原理:
此工具內置了三個瀏覽器,三個瀏覽器完全獨立,目前采用的是chrome內核,我們可以為三個瀏覽器使用不同的用戶登錄目標網站,或者為三個瀏覽器設置不同的cookie,然后讓他們同時去訪問同一個url或者發送同樣的請求,觀察三個瀏覽器的頁面變化。
假如某個URL本應只有1號瀏覽器的用戶有權限查看,但是2、3號瀏覽器的用戶也正常訪問了URL,並獲取了不該獲取的數據,則可能存在越權漏洞。界面如下:

目前操作模式主要有兩種:
一、2、3號瀏覽器與1號瀏覽器同步。
這種情況我們只要操作1號瀏覽器,2、3號瀏覽器會跟隨1號瀏覽器訪問同樣的地址,這樣我們可以為1號瀏覽器設置更高權限的用戶即可檢測垂直越權。為三個瀏覽器設置同樣級別的用戶即可檢測水平越權。
二、所有瀏覽器與表格同步。
這種情況主要針對ajax、post、手機app等情況,開啟代理功能,類似burp,瀏覽器或者手機app設置代理為此工具,則會抓下所有的請求,然后我們點擊表格中的任意請求,三個瀏覽器會以各自的身份去發送這個請求,同樣我們觀察頁面變化來判斷是否存在越權問題。
另外此工具也可用於檢測csrf漏洞。
操作方法:
1、在三個瀏覽器各自的文本輸入框輸入cookie,點擊設置cookie,即可為對應的瀏覽器設置cookie。
2、點擊三個瀏覽器上方的清除cookie,即可清除已經設置的cookie。
3、點擊 啟動即可啟動代理,默認為監聽 。0.0.0.0:8088端口。
4、在搜索框內輸入關鍵字,點擊搜索即可對表格內所有記錄的請求進行搜索。
下載地址:http://www.cnblogs.com/SEC-fsq/p/5736675.html 文件名 privilegecheck.jar 目前只做了windows版本。
案例4:越權檢測-Burpsuite插件Authz安裝測試-插件使用
Authz工作原理:將用戶認證的HTTP請求頭進行修改(Cookie等),然后通過響應長度、響應狀態碼判斷是否存在越權。
安裝:Extender > BApp Store > Authz > install > 安裝成功。
使用前提:同個業務系統中兩個測試賬號A、B
使用方法:A賬戶機進行功能操作,抓包,將待測請求包發送給Authz模塊,修改cookie值(或者其他的用戶身份憑證請求頭)為B賬戶憑證,運行,當原響應內容長度、響應狀態碼和被修改后請求的響應內容長度、響應狀態碼一致則會綠,代表存在越權。
優缺點:
- 優點:使用簡單、省時省力。
- 缺點:只是適用於檢測越權讀取類操作,刪除編輯類操作還需人工判斷。

bp中還有一個插件AuthMatrix可用來檢測越權漏洞,這個插件比Authz更新更好用,但是需要下載Jython,比較麻煩。感興趣的同學可以試試。

案例5:越權檢測-secscan-authcheck安裝測試-工具使用
下載地址:https://github.com/ztosec/secscan-authcheck
secscan-authcheck工具比較強大,安裝也比較麻煩,需要搭建自己的服務器,將工具安裝在服務器上,然后需要在瀏覽器安裝插件,將瀏覽器訪問流量導入自己的服務器上,使用該工具檢測是否有越權漏洞。


