日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Springboot之actuator配置不当漏洞(autoconfig、configprops、beans、dump、env、health、info、mappings、metrics、trace)

發布時間:2025/3/15 javascript 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Springboot之actuator配置不当漏洞(autoconfig、configprops、beans、dump、env、health、info、mappings、metrics、trace) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

Actuator 是 springboot 提供的用來對應用系統進行自省和監控的功能模塊,借助于 Actuator 開發者可以很方便地對應用系統某些監控指標進行查看、統計等。在 Actuator 啟用的情況下,如果沒有做好相關權限控制,非法用戶可通過訪問默認的執行器端點(endpoints)來獲取應用系統中的監控信息。Actuator 配置不當導致應用系統監控信息泄露對應用系統及其用戶的危害是巨大的,然而關于 springboot 框架下 actuator 配置不當的漏洞利用分析文章很少,目前筆者只在先知社區看到有一篇介紹 actuator 的安全文章,于是想在這里,分享下筆者在滲透測試過程中遇到的 actuator 配置不當的發現及利用過程,如有分析不正確的地方,還請各位大佬輕噴~ ? ?

Actuator 簡介?? ?

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

Http 方法路徑描述
get/autoconfig提供了一份自動配置報告,記錄哪些自動配置條件通過了,哪些沒通過
get/configprops描述配置屬性(包含默認值)如何注入 Bean
get/beans描述應用程序上下文里全部的 Bean,以及它們的關系
get/dump獲取線程活動的快照
get/env獲取全部環境屬性
get/env/{name}根據名稱獲取特定的環境屬性值
get/health報告應用程序的健康指標,這些值由 HealthIndicator 的實現類提供
get/info獲取應用程序的定制信息,這些信息由 info 打頭的屬性提供
get/mappings描述全部的 URI 路徑,以及它們和控制器(包含 Actuator 端點)的映射關系
get/metrics報告各種應用程序度量信息,比如內存用量和 HTTP 請求計數
get/metrics/{name}報告指定名稱的應用程序度量值
post/shutdown關閉應用程序,要求 endpoints.shutdown.enabled 設置為 true(默認為 false)
get/trace提供基本的 HTTP 請求跟蹤信息(時間戳、HTTP 頭等)? ? ? ? ? ? ? ?
get/heapdump后臺用戶賬號密碼泄露
get/httptrace 會記錄100個最近請求包
get/restart重新啟動應用程序
get/logfile輸出日志內容

漏洞發現

一般來說,筆者挖掘 actuator 配置不當的漏洞分如下兩步:1. 識別當前 web 應用使用的框架為 springboot 框架;2. 枚舉執行器端點路徑;下面針對這兩步結合筆者漏洞挖掘中遇到的實例具體來說說。

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

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

該綠色小圖標是 spring 框架下的一個默認圖標,盡管不能百分百就此圖標確認當前 web 應用使用的是 springboot 框架,但是基本上也能百分之八十確認該 web 應用是使用 springboot 框架開發的了(畢竟 springboot 框架確實是太流行了)。? ?

②通過 springboot 框架默認報錯頁面;如果 web 應用開發者沒有修改 springboot web 應用的默認 4xx、5xx 報錯頁面,那么當 web 應用程序出現 4xx、5xx 錯誤時,會報錯如下(此處僅以 404 報錯頁面為例):

當出現如上報錯頁面,就能確定當前 web 應用是使用了 springboot 框架的。? ?

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

2. 枚舉執行器端點路徑。這個其實很簡單,在確認當前 web 站點是 springboot 框架后,枚舉當前站點的所有一級、二級甚至三級目錄,然后寫腳本對每個目錄進行探測,查看目錄下是否存在 actuator 執行端點路徑即可。(本來想寫個比較通用的探測腳本的,現在只有延期了.. 寫完之后放出來)? ? ? ?

漏洞利用

通過如上步驟,如果你發現了 actuator 的配置不當漏洞,那就要恭喜你啦。不過,盡管這些監控信息的泄露已經足夠高危了,有時候碰到一些比較嚴格的廠商,需要你證明一下這些監控信息的具體危害,或者你想要將危害等級提升到嚴重,或者想要通過這些監控信息進一步挖掘其他漏洞,該怎么利用呢?筆者通過自身的踩坑經歷,總結了如下幾個點來盡可能最大化的利用該漏洞:??

①認證字段的獲取以證明可影響其他用戶這個主要通過訪問/trace 路徑獲取用戶認證字段信息,比如如下站點存在 actuator 配置不當漏洞,在其 trace 路徑下,除了記錄有基本的 HTTP 請求信息(時間戳、HTTP 頭等),還有用戶 token、cookie 字段: ? ? ? ? ? ?

trace 路徑:

用戶認證字段泄露:

通過替換 token 字段可獲取其他用戶的信息:

②數據庫賬戶密碼泄露;由于 actuator 會監控站點 mysql、mangodb 之類的數據庫服務,所以通過監控信息有時可以拿下 mysql、mangodb 數據庫;這個主要通過/env 路徑獲取這些服務的配置信息,比如如下站點存在 actuator 配置不當漏洞,通過其/env 路徑,可獲得 mysql、mangodb 的用戶名及密碼: ?

mangodb 及 mysql 都可直連,此處以 mysql 為例:?

該漏洞詳情請見https://dvpnet.io/info/detail/id/814,是筆者去年在 dvp 平臺提交的一個漏洞。一旦數據庫外連成功,漏洞分分鐘高危變嚴重啊。

③git 項目地址泄露;這個一般是在/health 路徑,比如如下站點,訪問其 health 路徑可探測到站點 git 項目地址: ?

直接訪問 git 項目地址,可拿下源碼:

④后臺用戶賬號密碼泄露這個一般是在/heapdump 路徑下,訪問/heapdump 路徑,返回 GZip 壓縮 hprof 堆轉儲文件。在 Android studio 打開,會泄露站點內存信息,很多時候會包含后臺用戶的賬號密碼(包含漏洞的圖片暫時沒得,大家記住思路就好了..),通過泄露的賬號密碼,然后進入后臺一番轟炸也不錯的。? ?

安全措施

引入 security 依賴,打開安全限制并進行身份驗證;同時設置單獨的 Actuator 管理端口并配置不對外網開放。詳情請見先知社區https://xz.aliyun.com/t/2233?? ?

參考文獻

1.https://xz.aliyun.com/t/2233

2.https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#production-ready

3.https://blog.csdn.net/qq_20325039/article/details/79822141

總結

以上是生活随笔為你收集整理的Springboot之actuator配置不当漏洞(autoconfig、configprops、beans、dump、env、health、info、mappings、metrics、trace)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。