原理:
未授權訪問可以理解為需要授權才可以訪問的頁面由於錯誤的配置等其它原因,導致其它用戶可以直接訪問,從而引發各種敏感信息泄露
漏洞描述
Actuator是Spring Boot提供的服務監控和管理中間件,默認配置會出現接口未授權訪問,部分接口會泄露網站流量信息和內存信息等,使用Jolokia庫特性甚至可以遠程執行任意代碼,獲取服務器權限。
Spring Boot Actuator未授權訪問
/dump - 顯示線程轉儲(包括堆棧跟蹤)
/autoconfig - 顯示自動配置報告
/configprops - 顯示配置屬性
/trace - 顯示最后幾條HTTP消息(可能包含會話標識符)
/logfile - 輸出日志文件的內容
/shutdown - 關閉應用程序
/info - 顯示應用信息
/metrics - 顯示當前應用的’指標’信息
/health - 顯示應用程序的健康指標
/beans - 顯示Spring Beans的完整列表
/mappings - 顯示所有MVC控制器映射
/env - 提供對配置環境的訪問
/restart - 重新啟動應用程序
spingboot框架的判斷
-
出現404報錯如圖所示
-
通過 web 應用程序網頁標簽的圖標(favicon.ico);如果 web 應用開發者沒有修改 springboot web 應用的默認圖標,那么進入應用首頁后可以看到如下默認的綠色小圖標:
安全建議
-
安全建議
-
禁用所有接口,將配置改成:endpoints.enabled = false
-
或者引入spring-boot-starter-security依賴:
-
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
-
開啟security功能,配置訪問權限驗證,類似配置如下:
management.port=8099
management.security.enabled=true
security.user.name=xxxxx
security.user.password=xxxxxx
漏洞復現:
1.進入url欄中發現此框架采用springboot框架
2.經過檢查:輸入地址http://xxx.com/actuator/env
發現其存在未授權訪問
3.經檢查在env配置下不存在mysql mangodb數據庫賬號密碼
4.在health目錄下並未發現git項目地址
參考文獻:https://blog.csdn.net/xiaoanzi123/article/details/105573457/