Fastjson 1.2.47 远程命令执行漏洞
1、靶机环境安装
1.1、虚机机linux环境参数
1、操作系统:CentOS Linux release 7.4.1708 (Core)
2、IP:192.168.127.132
1.1、docker与docker compose安装
1.2、下载https://github.com/vulhub/vulhub/tree/master/fastjson/1.2.47-rce到本地临时路径
https://github.com/vulhub/vulhub/tree/master/fastjson/1.2.47-rce
[root@localhost docker]# pwd
/usr/local/src/docker
[root@localhost docker]# ls
docker-compose.yml
[root@localhost docker]# cat docker-compose.yml
version: '2'
services:
web:
image: vulhub/fastjson:1.2.45
ports:
- "8090:8090"
1.3、启动靶机服务
docker-compose up -d
[root@localhost docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
vulhub/fastjson 1.2.45 9423bd2fcac7 4 years ago 326MB
[root@localhost docker]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
98803895b2de vulhub/fastjson:1.2.45 "java -Dserver.addre…" 3 hours ago Up 3 hours 0.0.0.0:8090->8090/tcp, :::8090->8090/tcp docker-web-1
1、浏览器访问http://ip:8090
2、返回如下响应,说明服务启动正常
{
"age": 25,
"name": "Bob"
}
2、dnslog环境配置
2.1、在windows宿主机运行dnslog-window
2.2、解压附件的dnslog-windows.zip,查看config.yaml配置文件
HTTP:
port: 8000
#{"token":"用户对应子域名"}
user: { "admin": "dnslog" }
consoleDisable: false
Dns:
domain: demo.com
-
port是dnslog运行后的web监听端口
-
admin是访问时需要录入的token
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/6baf6974b1064a7cb340402908f518ec.png#pic_center)
-
dnslog:二级域名
-
domain:主域名
2.3、访问界面http://localhost:8000/
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/b7ca6b0bebc147518089c89c4bc6325f.png#pic_center)
2.4、验证
-
本机是window10系统
-
配置dns解析服务器为本机
ping 666.dnslog.demo.com
3、漏洞检测验证(dnslog方式)
3.1、配置靶机dns解析服务器,指向运行dnslog的宿主机192.168.127.1
-
进入靶机容器后,发现没有安装vi等编辑工具,只好用echo进行文件修改
-
修改/etc/resolv.conf(linux环境中域名解析配置)
echo 'nameserver 192.168.127.1' > resolv.conf
ping 666.dnslog.demo.com
3.2、用postman或curl访问靶机
3.3、同样,在dnslog查看到记录说明靶机漏洞存在,利用成功
3.4、其它展开利用的方式常见rmi,ldap利用,具体可自行研究展开;
4、源码漏洞原因分析
4.1、跟踪验证过程具体参考如下文章
https://www.anquanke.com/post/id/181874
4.2、intelij idea环境调试fastjson环境配置
5、附件下载
Fastjson-less1-2-47远程命令执行.rar (访问密码: 1150)