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

2.3、访问界面http://localhost:8000/

2.4、验证
ping 666.dnslog.demo.com
3、漏洞检测验证(dnslog方式)
3.1、配置靶机dns解析服务器,指向运行dnslog的宿主机192.168.127.1
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)