影響版本:Struts 2.5 - Struts 2.5.12
漏洞概述:問題出現在struts2-rest-plugin插件XStreamHandler處理器中的toObject()方法,其中未對傳入的值進行任何限制,在使用XStream反
0×01 搭建環境
直接部署struts-2.5.12-all中的struts2-rest-showcase項目即可,從下圖可以看出,插件的默認配置支持xml擴展。
運行看看,默認的xhtml擴展
轉換成xml也成功,但是注意Content-Type需要改成application/xml類型。
用marshalsec(https://github.com/mbechler/marshalsec)生成Payload,工具簡單使用方式如下:
java -cpmarshalsec-0.0.1-SNAPSHOT-all.jar marshalsec.<Marshaller 截圖和代碼較長,點擊查看構造poc完整使用方式
0×03 復現驗證
0×04 加固建議
- 升級Apache struts 2.5.13版本
- 在不使用時刪除StrutsREST插件,或僅限於服務器普通頁面和JSONs
<constantname=”struts.action.extension”value=”xhtml,,json” />




