搜尋
首頁運維安全Spring Boot Actuator從未授權存取getshell的範例分析

前言

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

Actuator 是 springboot 提供的用來對應用系統進行自省和監控的功能模組,借助於 Actuator 開發者可以很方便地對應用系統某些監控指標進行查看、統計等。在 Actuator 啟用的情況下,如果沒有做好相關權限控制,非法使用者可透過存取預設的執行器端點(endpoints)來獲取應用系統中的監控信息,從而導致資訊外洩甚至伺服器被接管的事件發生。

Actuator是Spring Boot提供的功能模組,它可以用於自省和監控應用程式系統。 The provided executor endpoints are divided into two categories: native endpoints and user-defined extension endpoints. The native endpoints mainly include:

Spring Boot Actuator从未授权访问到getshell的示例分析









Spring Boot Actuator从未授权访问到getshell的示例分析


Spring Boot Actuator从未授权访问到getshell的示例分析


Spring Boot Actuator从未授权访问到getshell的示例分析

Spring Boot Actuator从未授权访问到getshell的示例分析

'

#利用env加refresh進行getshell

Spring Boot Actuator从未授权访问到getshell的示例分析

#利用mappings,尋找未授權介面

利用trace,取得認證資訊(Cookie、tooken、Session),利用認證資訊存取介面。

Spring Boot Actuator从未授权访问到getshell的示例分析

env有可能洩漏的資料庫帳號密碼(mangodb),當然得開放外網,可能性較小。

Spring Boot Actuator从未授权访问到getshell的示例分析

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

#########漏洞發現####### ##通常識別目前web 應用程式使用的框架為springboot 框架。主要有兩個方法判斷:############透過web 應用程式網頁標籤的圖示(favicon.ico);如果web 應用程式開發者沒有修改springboot web 應用程式的預設圖標,那麼進入應用程式首頁後面可以看到如下預設的綠色小圖示:###############################透過springboot 框架預設報錯頁面;如果web 應用程式開發者沒有修改springboot web 應用程式的預設4xx、5xx 報錯頁面,那麼當web 應用程式出現4xx、5xx 錯誤時,會報錯如下(此處僅以404 報錯頁面為例):存取一個隨便建構的路徑,例如:http:/172.26.2.24:8090/index,出現如下報錯頁面說明web網站使用了springboot框架(在實際中遇到的大多數都是此類情況)。 ########################是綜合以上兩個途徑來判斷目前web 應用程式是否為springboot 框架,就是透過存取不同的目錄,看是否有小綠葉圖標,然後就是想辦法在不同目錄下觸發應用程式的4xx 或5xx 錯誤,看是否有Whitelabel Error Page 報錯。 ######漏洞利用#########存取/trace端點取得基本的 HTTP 請求追蹤資訊(時間戳記、HTTP 頭等),如果有登入使用者的操作請求,可以偽造cookie進行登入。 ###############訪問/env端點取得全部環境屬性,由於actuator 會監控網站mysql、mangodb 之類的資料庫服務,所以透過監控資訊有時可以mysql、mangodb 資料庫信息,如果資料庫剛好開放在公網,那麼造成的危害是巨大的,###############/env端點配置不當造成RCE,######前置條件:Eureka -Client 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的範例分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:亿速云。如有侵權,請聯絡admin@php.cn刪除

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境