天天看點

Springboot之actuato介紹及漏洞

Spring Boot Actuator可以幫助你監控和管理Spring Boot應用,比如健康檢查、審計、統計和HTTP追蹤等。所有的這些特性可以通過JMX或者HTTP endpoints來獲得。

Actuator同時還可以與外部應用監控系統整合,比如 Prometheus, Graphite, DataDog, Influx, Wavefront, New Relic等。這些系統提供了非常好的儀表盤、圖示、分析和告警等功能,使得你可以通過統一的接口輕松的監控和管理你的應用。

Actuator使用Micrometer來整合上面提到的外部應用監控系統。這使得隻要通過非常小的配置就可以內建任何應用監控系統。

<!--監控-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
            <version>2.2.2.RELEASE</version>
        </dependency>
           

使用Actuator Endpoints來監控應用

Actuator建立了所謂的endpoint來暴露HTTP或者JMX來監控和管理應用。

舉個例子,有一個叫/health的endpoint,提供了關于應用健康的基礎資訊。/metrics endpoints展示了幾個有用的度量資訊,比如JVM記憶體使用情況、系統CPU使用情況、打開的檔案等等。/loggers endpoint展示了應用的日志和可以讓你在運作時改變日志等級。

值得注意的是,每一給actuator endpoint可以被顯式的打開和關閉。此外,這些endpoints也需要通過HTTP或者JMX暴露出來,使得它們能被遠端進入。

Springboot之actuato介紹及漏洞

]

management:
  endpoint:
    health:
      show-details: always
  endpoints:
    web:
      exposure:
        include: '*'
           

actuator 的配置不當漏洞,該怎麼利用呢?筆者通過自身的踩坑經曆,總結了如下幾個點來盡可能最大化的利用該漏洞:        

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

trace 路徑:            

Springboot之actuato介紹及漏洞

使用者認證字段洩露:

Springboot之actuato介紹及漏洞

通過替換 token 字段可擷取其他使用者的資訊:

Springboot之actuato介紹及漏洞
Springboot之actuato介紹及漏洞

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

Springboot之actuato介紹及漏洞

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

Springboot之actuato介紹及漏洞

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

③git 項目位址洩露;這個一般是在/health 路徑,比如如下站點,通路其 health 路徑可探測到站點 git 項目位址:            

Springboot之actuato介紹及漏洞

直接通路 git 項目位址,可拿下源碼:

Springboot之actuato介紹及漏洞

④背景使用者賬号密碼洩露;這個一般是在/heapdump 路徑下,通路/heapdump 路徑,傳回 GZip 壓縮 hprof 堆轉儲檔案。在 Android studio 打開,會洩露站點記憶體資訊,很多時候會包含背景使用者的賬号密碼(包含漏洞的圖檔暫時沒得,大家記住思路就好了..),通過洩露的賬号密碼,然後進入背景一番轟炸也不錯的。   

安全措施

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