Struts2-048漏洞复现(CVE-2017-9791)

2018-03-28 14:09:16 浏览数 (1)

2017年7月7日,Apache Struts发布最新的安全公告,漏洞编号为S2-048,该漏洞存在Struts2和Struts1一个Showcase插件Action Message类中,通过构建不可信的输入实现远程命令攻击,存在安全风险。

基础环境

1.Ubuntu 作为靶机:192.168.159.134

2.Ubuntu使用docker获取Struts2-048靶场

源码部署过程

首先Ubuntu已经安装了docker环境。用了DaoCloud 的自动安装脚本:

DaoCloud 的安装脚本

curl -sSL https://get.daocloud.io/docker | sh

安装了docker之后,安装docker的compose

可以像 python 包一样安装:

pip install -U docker-compose

验证是否可以使用:

使用git下载Strust2-048的靶场:

git clone https://github.com/rebo-rn/vuldocker.git

在s2-048这个文件有一个由compose编写的靶场环境的docker-compose.yml,前面已经安装好了compose,现在创建并启动它。

docker-compose build

docker-compose up -d

搭建成功,访问30081端口:

漏洞复现过程

漏洞POC:

链接:http://pan.baidu.com/s/1dFL7r0X

密码:uvg2

点击Struts 1 Integration,在出现的表单输入任意数据并提交,这里提前使用burp拦截数据包并将拦截的数据包发送到Repeater模块。

修改name参数的值为经过URL编码后的POC,数据执行命令id和ls -al,可以发现服务端执行了命令并将结果返回。

总结

这个漏洞复现比较简单,关键在于docker靶场的搭建。本文所用的git资源,还有很多其他的struts2的漏洞环境,有兴趣的小伙伴们可以深究。如果在环境搭建上有疑问,欢迎给斗哥留言。

0 人点赞