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

歡迎訪問 生活随笔!

生活随笔

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

javascript

【web安全】Spring boot heapdump获取敏感信息

發布時間:2025/3/21 javascript 69 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【web安全】Spring boot heapdump获取敏感信息 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、概述

微服務是目前較為熱門的技術,Spring boot 是 Spring 的一套快速配置腳手架,可以基于Spring boot 快速開發單個微服務,微服務的特點決定了功能模塊分布式部署,在不同的機器上相互通過服務調用進行交互,業務流會經過多個微服務的處理和傳遞。

? 多個微服務下,微服務的監控顯得尤為重要。Actuator組件為Spring Boot提供對應用系統的監控和管理的集成功能,可以查看應用配置的詳細信息,例如自動化配置信息、創建的Spring beans信息、系統環境變量的配置信以及Web請求的詳細信息等。

? 如果Actuator使用不當或者一些不經意的疏忽,可能造成信息泄露等嚴重的安全隱患。/heapdump作為Actuator組件最為危險的Web接口,如Actuator配置不當,攻擊者可無鑒權獲取heapdump堆轉儲文件,分析heapdump堆轉儲文件進一步獲取敏感信息。

? Actuator 用來對應用系統進行自省和監控的功能模塊,其提供的執行器端點分為兩類:

? 1.原生端點

? 2.用戶自定義擴展端點

原生端點主要有:

HTTP 方法路徑描述
GET/dump獲取當前應用的所有線程dump情況。當出現內存占用過高等情況下,可以幫助分析線程的使用情況,幫助定位問題。
GET/heapdump堆轉儲文件
GET/env獲取全部環境屬性
GET/env/{name}根據名稱獲取特定的環境屬性值
GET/autoconfig提供了一份自動配置報告,記錄哪些自動配置條件通過了,哪些沒通過
GET/configprops描述配置屬性(包含默認值)如何注入 Bean
GET/beans描述應用程序上下文里全部的 Bean,以及它們的關系
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 頭等)

? 搭建漏洞復現環境:

二、Actuator配置不當

【→所有資源關注我,私信回復“資料”獲取←】
1、網絡安全學習路線
2、電子書籍(白帽子)
3、安全大廠內部視頻
4、100份src文檔
5、常見安全面試題
6、ctf大賽經典題目解析
7、全套工具包
8、應急響應筆記

/heapdump作為Actuator組件最為危險的Web接口之一,如Actuator配置不當,攻擊者可無鑒權獲取heapdump堆轉儲文件,分析heapdump堆轉儲文件進一步獲取敏感信息。 其中 /dump 可獲取線程活動的快照, /heapdump 可獲取堆轉儲文件。

? 堆轉儲文件,是Java進程在某個時間點上的內存快照。HeapDump記錄有JVM中堆內存運行的情況,含Java對象、類以及線程棧以及本地變量等信息。

? 通過訪問/dump 路徑,返回線程活動的快照,可看到Springboot線程活動中存在RMI 監聽。

訪問/dump 路徑,效果如下圖所示:

通過訪問/heapdump 路徑,返回 hprof 堆轉儲文件壓縮包。在JVisualVM 打開該堆轉儲文件.hprof ,將泄露站點內存信息,比如后臺用戶的賬號密碼。

訪問/heapdump 路徑,效果如下圖所示:

三、識別版本

Springboot heapdump端點存在版本差異

? Spring boot 1.x版本,默認端點為/heapdump,下載的heapdump文件包含時間以及后綴hprof。

? Spring boot 2.x版本,默認端點為/Actuator/heapdump,需要將下載的heapdump文件加上.hprof后綴。

四、工具選擇

分析堆轉儲文件工具有幾個選擇

? JVisualVM:JDK自帶工具,供開發者用于監視,故障排除。

Eclipse MAT:Eclipse提供的一款Heap Dump分析工具,如使用Eclipse-UI內存崩潰,可使用MAT腳本解析大容量的heap dump。


IBM Heap Analyzer:IBM公司一款分析Heap Dump信息的工具,有效的列舉堆的內存使用狀況,幫助分析Java內存泄漏的原因。

五、OQL查詢語言

因為堆轉儲文件里面含有大量信息,要準確找到我們想要的信息需要借助一些工具和一些查詢技巧。

?? ?? ? Springboot OQL 對象查詢語言是一種結構化查詢語言,將類當作表、對象當作記錄行、成員變量當作表中的字段。通過OQL可以方便快捷的查詢一些需要的信息,加快檢出需要的屬性值。

版本差異

?? ?? ? Spring boot 1.x 版本 heapdump 查詢結果存儲在 java.util.Hashtable$Entry 實例鍵值對中:

?? ?? ? Spring boot 2.x 版本 heapdump 查詢結果存儲在 java.util.LinkedHashMap$Entry 實例鍵值對中:

?? ?? ? 利用password關鍵字檢索,對應的 oql 查詢語句

Eclipse MAT對應查詢語句

?? ?? ? Spring boot 1.x:select * from java.util.Hashtable$Entry s WHERE (toString(s.key).contains("password"))

?? ?? ? Spring boot 2.x:select * from java.util.LinkedHashMap$Entry s WHERE (toString(s.key).contains("password"))

六、具體步驟

此次使用JDK自帶JVisualVM工具,對Heap Dump進行分析,該工具位于<JDK_HOME>/bin/目錄。

JDK自帶工具,如下圖所示:

雙擊打開JVisualVM工具。

其主界面,如下圖所示:

?? ?? ? 通過JVisualVM加載heapdump文件,在概要欄目系統屬性處,可看到部分敏感信息泄露。

部分敏感信息泄露,如下圖所示:

切換至OQL控制臺標簽,在輸入框輸入如下語句,點擊執行進行查詢。

select s.value.toString() from java.util.Hashtable$Entry s where /password/.test(s.key.toString())

查詢結果,如下圖所示:

切換至類標簽,在下方輸入框限制檢索條件java.util.Hashtable,點擊結果中第一項java.util.Hashtable$Entry

查詢結果,如下圖所示:

切換不同的實例進行觀察,在第411項實例發現后臺管理員密碼明文。

管理員密碼明文,效果如下圖所示:

在第409項實例中進一步可看到 MySQL數據庫密碼。

查看MySQL數據庫密碼,效果如下圖所示:

在查找密碼上,可結合網站?/env?或?/Actuator/env?接口,檢索?關鍵詞,使用被星號 遮掩對應的屬性名作為OQL過濾條件。

查看遮擋屬性值,效果如下圖所示:

shiroKey

?? ?? ? 如目標網站使用Shiro安全框架,在過濾規則輸?org.apache.shiro.web.mgt.CookieRememberMeManager?尋找?decryptionCipherKey字段,可獲取key,進而rememberMe反序列化利用。

七、防控措施

在代碼白盒審計時,對Springboot項目重點檢測Actuator依賴,對安全依賴及配置進行復查,建議作為漏洞檢出規則加入代碼掃描器。

?? ?? ? 在網絡安全風險自查中,將/heapdump?等敏感路徑加入掃描器字典。

在使用Actuator時,不正確的使用或不經意的疏忽,都會造成嚴重的信息泄露等安全隱患。安全的做法是引入security依賴,打開安全限制并進行身份驗證。同時設置單獨的Actuator管理端口并配置不對外網開放。

引入?security?依賴,打開安全限制,或禁用不需要接口,endpoints.env.enabled= false

總結

以上是生活随笔為你收集整理的【web安全】Spring boot heapdump获取敏感信息的全部內容,希望文章能夠幫你解決所遇到的問題。

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