点击蓝字
![efea139d3a7eb2d561ebc037f73cfb84.gif](https://i-blog.csdnimg.cn/blog_migrate/4c0c3a0a1049d5d4f6ddf56a58f0dfe2.gif)
关注我们
声明
本文作者:flashine
本文字数:2382
阅读时长:20分钟
附件/链接:点击查看原文下载
声明:请勿用作违法用途,否则后果自负
本文属于WgpSec原创奖励计划,未经许可禁止转载
前言
之前做项目在内网测到了一个fastjson反序列化漏洞,使用dnslog可以获取到ip,但是通过burp请求在vps搭建的rmi服务时发现rmi服务监听的端口有收到请求,但是http服务没有收到请求,所以就研究一下不出网的fastjson怎么利用。0x00
利用方式
目前公开已知的poc有两个:
com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl
org.apache.tomcat.dbcp.dbcp2.BasicDataSource
第一种利用方式需要一个特定的触发条件,解析JSON的时候需要使用Feature才能触发,参考如下代码:
JSONObject.parseObject(sb.toString(), new Feature[]{Feature.SupportNonPublicField});
第二种利用方式则需要应用部署在Tomcat应用环境中,因为Tomcat应用环境自带tomcat-dbcp.jar
对于SpringBoot这种自带Tomcat可以直接以单个jar文件部署的需要在maven中配置tomcat-dbcp。
而且对于不同的Tomcat版本使用的poc也不同:• Tomcat 8.0以后使用org.apache.tomcat.dbcp.dbcp2.BasicDataSource
• Tomcat 8.0以下使用org.apache.tomcat.dbcp.dbcp.BasicDataSource
0x01
利用复现
环境配置:
• fastjson 1.2.45 • 代码参考 vulhub • 服务器:Windows Server 2012 r2 • jdk版本:jdk8u112