重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章的内容主要围绕如何实现Apache Struts2--052远程代码执行漏洞复现进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!
我们提供的服务有:成都网站建设、做网站、微信公众号开发、网站优化、网站认证、巴青ssl等。为上千余家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的巴青网站制作公司
2017年9月5日,Apache Struts发布最新的安全公告,Apache Struts 2.5.x的REST插件存在远程代码执行的高危漏洞,漏洞编号为CVE-2017-9805(S2-052)。漏洞的成因是由于使用XStreamHandler反序列化XStream实例的时候没有任何类型过滤导致远程代码执行。
Apache Struts 2.5 – Struts 2.5.12
Apache Struts 2.1.2 – Struts 2.3.33
虚拟机部署docker安装Vulhub一键搭建漏洞测试靶场环境。
docker-compose up -d
1、访问漏洞环境
http://192.168.60.131:8080/orders.xhtml
2、通过编辑进行POST数据的修改
3、该rest-plugin会根据URI扩展名或 Content-Type来判断解析文件方式, 需要修改xhtml或修改Content-Type头为application/xml,即可在Body中传递XML数据。
4、抓包对Content-Type类型修改
5、XML格式Payload数据包构造
6、通过payload进行漏洞利用,执行命令,返回响应500状态码,但是执行成功。
touch /tmp/yunzui.txt
7、命令执行结果进入docker查看,成功执行。
docker-compose exec struts2 bash
ls -al /tmp
1、升级Apache struts 2.5.13或2.3.34版本
2、如果系统没有使用Struts REST插件,那么可以直接删除Struts REST插件,或者在配置文件中加入如下代码,限制服务端文件的扩展名
3、限制服务端扩展类型,删除XML支持
感谢你的阅读,相信你对“如何实现Apache Struts2--052远程代码执行漏洞复现”这一问题有一定的了解,快去动手实践吧,如果想了解更多相关知识点,可以关注创新互联网站!小编会继续为大家带来更好的文章!