這篇文章給大家介紹如何復現Tomcat樣列目錄session操控漏洞,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
復現起源:
近期在項目中碰到的ApacheTomcat中間件愈來愈多,于是乎。想著做一個整理。將ApacheTomcat中間件的幾大較為重要的高危漏洞做一個總結整理復現。用作來鞏固更新自己的知識庫。
題外話:今天我們復現Tomcat樣例目錄session操控漏洞。在實戰中也碰到過一些樣例目錄examples開放可以操控操控全局session的一些Tomcat。不過該漏洞挺雞肋的??赡苓@里因為我們的圈子問題,聽大佬說只有發布該漏洞的作者利用成功過,至今也沒見過有人利用成功。原因就是后面我們要編寫的三個后臺登陸頁面。
漏洞描述:
ApacheTomcat默認安裝頁面中存在examples樣例目錄。里面存放著Servlets、JSP、WebSocket的一些服務腳本和接口等樣例。其中Servletsexamples服務樣例下存在一個session的樣例。該樣例可以允許用戶對session來進行操控。因為session是全局通用的,所以也就可以利用該樣例下的session來操控管理員的session來進行會話傳輸操控管理員的賬戶進行惡意操作。
漏洞分析:
我們直接看核心代碼:
上面的這段session控制的核心代碼意思說的是用戶通過表單提交name和value兩個參數值。然后通過request里的getParameter()函數獲取name和value值。再通過session.setAttribute()函數將獲取到的name和value值傳遞到session里面。即可以在通過前端頁面去控制session值來獲取管理員權限。
漏洞復現:
漏洞復現環境:
Tomcat7.0.88
JDK1.8.0_181
Burp2.0
這里以自己本地搭建的Tomcat版本為準。也不必刻意尋找相對應的Tomcat版本。
準備好環境之后我們開始復現。
http://127.0.0.1:8080/examples/servlets/servlet/SessionExample
我們來到Examples樣例目錄下的servlets下的session執行按鈕。
在Thefollowing data is in yoursession中我們來執行name名稱和value值來獲取我們需要的session會話值。下面的GETbased form
我的理解就是通過GET傳值的方法來登陸。所以說這項我們就不用去關注了。
這里我們需要三個頁面來輔助我們完成這個漏洞的復現。因為在
Examples樣例目錄下默認是沒有模擬登陸網站的頁面,所以我們需要這三個頁面來模擬通過操控session值來進行模擬登陸網站的后臺獲取管理權限。
Login.jsp:
Index.jsp:
Login_test.jsp:
準備好三個頁面后放置在examples樣例目錄下。我們就可以開始復現漏洞了。
首先我們模擬訪問index.jsp頁面,這時候他沒有獲取到admin的session值,所以代碼邏輯會做一個302跳轉重定向到login_test.jsp頁面。
接下來我們在樣例目錄下去獲取并且傳遞admin的session。
再進行訪問index.jsp頁面。這時候獲取到了admin的session值。代碼邏輯即輸出一個登陸成功。
接下來我們訪問login.jsp頁面并通過post表單的方法傳遞一個賬戶的值進去。即可發現跳轉到index.jsp。到此操控session來進行繞過登陸復現完成。
漏洞修復方案:
禁止訪問或者直接刪除examples樣例目錄下的資源。做目錄訪問權限設置,防止目錄遍歷。
關于如何復現Tomcat樣列目錄session操控漏洞就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。