1. 越權漏洞的定義
越權漏洞是一種很常見的邏輯安全漏洞。可以這樣理解:服務器端對客戶提出的數據操作請求過分信任,忽略了對該用戶操作權限的判定,導致攻擊賬號擁有了其他賬戶的增刪改查功能。
2.越權漏洞的分類
平行越權: 就是相同級別(權限)的用戶或者同一角色不同的用戶之間,可以越權訪問、修改或者刪除的非法操作。視頻中的例子是登錄賬號后,更改訪問界面來獲取別人的信息
垂直越權: 垂直越權是不同級別之間或不同角色之間的越權。視頻中的例子為截獲admin的數據包,然后將cookie改成自己的cookie
3. 身份繞過cookie
cookie: 我們在瀏覽器中,經常涉及到數據的交換,比如你登錄郵箱,登錄一個頁面。我們經常會在此時設置30天內記住我,或者自動登錄選項。那么它們是怎么記錄信息的呢,答案就是今天的主角cookie了,Cookie是由HTTP服務器設置的,保存在瀏覽器中,但HTTP協議是一種無狀態協議,在數據交換完畢后,服務器端和客戶端的鏈接就會關閉,每次交換數據都需要建立新的鏈接。就像我們去超市買東西,沒有積分卡的情況下,我們買完東西之后,超市沒有我們的任何消費信息,但我們辦了積分卡之后,超市就有了我們的消費信息。cookie就像是積分卡,可以保存積分,商品就是我們的信息,超市的系統就像服務器后台,http協議就是交易的過程。
cookie分為會話cookie和持久cookie,會話cookie是指在不設定它的生命周期expires時的狀態,前面說了,瀏覽器的開啟到關閉就是一次會話,當關閉瀏覽器時,會話cookie就會跟隨瀏覽器而銷毀。當關閉一個頁面時,不影響會話cookie的銷毀。會話cookie就像我們沒有辦理積分卡時,單一的買賣過程,離開之后,信息則銷毀。
持久cookie則是設定了它的生命周期expires,此時,cookie像商品一樣,有個保質期,關閉瀏覽器之后,它不會銷毀,直到設定的過期時間。對於持久cookie,可以在同一個瀏覽器中傳遞數據,比如,你在打開一個淘寶頁面登陸后,你在點開一個商品頁面,依然是登錄狀態,即便你關閉了瀏覽器,再次開啟瀏覽器,依然會是登錄狀態。這就是因為cookie自動將數據傳送到服務器端,在反饋回來的結果。持久cookie就像是我們辦理了一張積分卡,即便離開,信息一直保留,直到時間到期,信息銷毀。在訪問網站的時候 網站有一些業務需要會自動分配一些cookie到瀏覽上,用來記錄用戶的行為,如購物車。在WEB安全中存在安全隱患,多數發生在驗證登錄。不少程序在驗證處,判斷cookie是否為空,假如不為空 即可登錄,cookie可預測。或者盜取別人的cookie來登錄。
session機制采用的是在服務器端保持狀態的方案,而cookie機制則是在客戶端保持狀態的方案,cookie又叫會話跟蹤機制。打開一次瀏覽器到關閉瀏覽器算是一次會話。說到這里,講下HTTP協議,前面提到,HTTP協議是一種無狀態協議,在數據交換完畢后,服務器端和客戶端的鏈接就會關閉,每次交換數據都需要建立新的鏈接。此時,服務器無法從鏈接上跟蹤會話。cookie可以跟蹤會話,彌補HTTP無狀態協議的不足。
4. 身份繞過session
session機制是一種服務器端的機制,服務器使用一種類似於散列表的結構(也可能就是使用散列表)來保存信息。
當程序需要為某個客戶端的請求創建一個session的時候,服務器首先檢查這個客戶端的請求里是否已包含了一個session標識 - 稱為session id,如果已包含一個session id則說明以前已經為此客戶端創建過session,服務器就按照session id把這個session檢索出來使用(如果檢索不到,可能會新建一個),如果客戶端請求不包含session id,則為此客戶端創建一個session並且生成一個與此session相關聯的session id,session id的值應該是一個既不會重復,又不容易被找到規律以仿造的字符串,這個session id將被在本次響應中返回給客戶端保存。
保存這個session id的方式可以采用cookie,這樣在交互過程中瀏覽器可以自動的按照規則把這個標識發揮給服務器。
session一般用於登錄驗證。
session的什么周期
1、 默認關閉瀏覽器,session就會消失。
2、 在程序中設置session的過期時間
session是存在於服務器里,cookie是存在客戶端。
session的機制 是會在瀏覽器生成一個cookie session_id 也會在服務器里生產一個session id文件。假如做身份證認證的時候就會在這個服務器里的文件寫入要驗證的內容。
在php里 session的存放位置是 在php.ini里設置的,也可以通過函數設置在其他位置
session文件一般在/tmp文件夾下
出現漏洞的情景:
如果服務器的session-id 存在網站的其他目錄,通過掃描目錄獲取 session 文件。
如果存放在數據庫,可以通注入漏洞獲取seesion信息
獲取到session_id 就可以修改cookie 進行提交 驗證就可以通過