springboot滲透總結
一、前言
今天的文章主要跟大家聊一下關於 springboot 環境下的滲透。 Springboot 現如今可以說是 java 開發的一個入門框架,深受各個公司親賴,現有 java 站點 springboot 還是有一定比例的,所以說還是有必要對 springboot 滲透有一定了解。
二、 攻擊思路
1. 總體分析
對於 springboot 框架,常見的攻擊思路主要是監控端點以及 swagger-ui 介面的一些利用,已有的文章算是比較多了,這裡給一個 GitHub 的地址: https://github.com/LandGrey/SpringBootVulExploit ,其中對於漏洞的介紹算是比較詳細,所以在這裡主要介紹一些經驗之談以及一些新東西。
2. 版本
對於 springboot 框架識別,大部分師傅可能已經瞭解,這裡稍微提一下,可以根據圖中的兩個特徵或者 cookie 中的 springboot 標識等確定目標站點是否為 springboot 。
springboot 大版本可以分為 1.x 和 2.x ,通過暴露的監控端點可以區分其版本。 1.x 版本在監控端點未授權的情況下,預設是監控端點是全部開啟的,而在 2.x 版本,可能是官方為了安全著想,預設僅開啟了幾個無傷大雅的端點。
下圖為 Springboot 1.x 啟動時開啟的監控端點
下圖為 Springboot 2.x 啟動時開啟的監控端點
只有當 Endpoint. Shutdown. enabled 屬性設定為 true 時才會暴露出其他敏感端點
3. env 端點攻擊
env 端點是在滲透時候比較重要的一個端點,一些歷史 rce 漏洞基本都需要依賴該端點 post 資料給伺服器,並且改端點還會暴露系統一些比較敏感的資訊。
3.1 獲取脫敏敏感資訊
該端點對敏感資訊會進行脫敏處理,對於獲取脫敏敏感資訊,主要分為遠端請求 vps 和 heapdump 記憶體中查詢。我建議從記憶體中查詢,這樣可以避免 vps 地址暴露。其次敏感資訊不侷限於資料庫密碼等,還有可能存在郵箱賬號,企業微信 apikey ,微信小程式 apikey 等,這些都是在專案中確切獲取到過的。
如下為某企業微信 apikey ,微信有公開的 api 文件,通過這些可以獲取目標大量人員資訊,甚至是加入到目標的企業微信中。
如下為某小程式微信 apikey ,使用官方 api 檢視該小程式存在大量使用者,擁有該小程式的某些控制權限危害還是比較大的。
對於獲取到的資料庫連線資訊都是內網的,不要認為沒有用處,密碼和埠還是有一定作用,對於非隨機的密碼,可以在目標所屬 ip 段進行碰撞或者組合密碼規則獲取資料庫許可權也是有可能的,在《記一次 hw 打點》文章中也確實獲取了外網 redis 的許可權。微信 apikey 、郵箱賬號等許可權都是重要資訊,可以更加貼近目標,對於接下來的攻擊做鋪墊。
3.2 env 端點下的 rce
歷史 rce 在 github 專案中已經提及七七八八,各位師傅可以下載專案中的靶場環境進行復現,需要注意的一點就是 1.x 和 2.x 中提交資料時的 Content-Type 分別為 application/x-www-form-urlencoded 和 application/json ,否則會提交資料失敗。
4. httptrace 端點
httptrace 端點可以獲取當前 web 訪問的請求資訊,可能找到未銷燬的管理員 cookie 資訊,在這裡建議判斷到一個 web 為 springboot 開發時候不要掃描目錄,別問我是怎麼知道的( /( ㄒ o ㄒ )/~~ ,因為這個端點的記錄是有上限的,有一次掃描目錄後發現所有的記錄都是我掃描的記錄,可能把有些有用的東西給覆蓋了)。
5. gateway 端點
gateway 端點的利用主要是 ssrf ,現有文章可能比較少,這邊做一個復現。當 gateway 端點存在未授權時,直接訪問 gateway 是一個 404 的狀態。
訪問 actuator/gateway/routes 路由,可以看到系統的所有口介面資訊
我們可以為該介面新增路由,比如添加個 index 路由,將路由地址設定為百度,狀態回顯 201 則路由建立成功。
訪問 /actuator/gateway/refresh 重新整理配置
重新整理成功後我們可以再次請求 actuator/gateway/routes 看到 index 路由被新增
訪問 index 路由
當然我們也可以刪除掉路由, delete /actuator/gateway/routes/index 介面
再次進行重新整理配置
檢視路由,發現 index 路由已經不在了
對於 gateway 端點的利用,很多師傅可能腦中會有很多自己的攻擊思路,比如釣魚,如果一個目標域名的站點存在漏洞,那麼該釣魚的可信程度會大大增加。 ssrf 基於偽協議的利用暫未實現成功。
三、 總結
關於 springboot 的總結暫時就是這些,僅是個人的淺顯經驗,如有其他思路或者文章內有紕漏的地方希望各位師傅可以在公眾號下方留言溝通。最後臨近新年,祝各位師傅新年快樂!!!
- 記一次從供應商到目標之旅
- 面對幾百個HVV目標的工具選擇
- 利用內網穿透工具隱藏cs伺服器
- 運氣是汗水的累積——記一次從供應鏈到目標的過程
- 一次普通的滲透測試
- windows系統下log4j2漏洞的後滲透
- k8s安全入門
- webshell許可權維持
- springboot滲透總結
- JNDI漏洞利用探索
- Linux痕跡清除
- Tomcat下JNDI高版本繞過淺析
- 遠端開啟3389及新增使用者總結
- ShiroAttack2工具原理分析
- 利用CodeQL分析並挖掘Log4j漏洞
- 內網中常見軟體的憑據利用
- 通過 CVE-2021-40449 初探 Windows 核心 POOL 分配與緩解措施
- 資訊蒐集和密碼利用的思路
- CodeQL上手筆記
- ManageEngine ADSelfService Plus(CVE-2021-40539)漏洞分析