漏洞概述
Apache Struts是美國阿帕奇(Apache)軟體基金會負責維護的一個開源項目,是一套用于建立企業級Java Web應用的開源MVC架構。在Struts 2.3.x 系列的 Showcase 應用中示範Struts2整合Struts 1 的插件中存在一處任意代碼執行漏洞。當你的應用使用了Struts2 Struts1的插件時,可能導緻不受信任的輸入傳入到ActionMessage類中導緻指令執行。
解決方案
向ActionMessage傳遞原始消息時使用類似下面的資源鍵值,不要直接傳遞原始數值
messages.add("msg", new ActionMessage("struts1.gangsterAdded", gform.getName()));
值不應如此:
messages.add("msg", new ActionMessage("Gangster " + gform.getName() + " was added"));
進入正文!
下午就看到朋友圈刷爆了 st2-048 用的github上的一位表哥的exp
複現成功
其中包含了st2-045 46 48 以及python的 poc
python版本複現成功截圖 Ps: 這個圖是其他小夥伴用poc複現成功的
POC下載下傳位址及更多防禦方案:https://bbs.ichunqiu.com/thread-24504-1-1.html?from=bky