Fastjson不出网利用方式

一、BasicDataSource

需要注意在Java 8u251以后,bcel类被删除。
BCEL的全名是Apache Commons BCEL,属于Apache Commons项目下的一个子项目,CC链也就是从Apache Commons产生的。BCEL库提供了一系列用于分析、创建、修改Java Class文件的API。主要用来将xml文档转为class文件。编译后的class被称为translet,可以在后续用于对XML文件的转换。该库已经内置在了JDK中。关于BCEL具体详情可参考下方链接。

https://www.leavesongs.com/PENETRATION/where-is-bcel-classloader.html

fastjson<=1.2.36,字节码的利用,无需目标额外开启选项,也不用连接外部服务器,利用条件更低。使用的是BCEL加载恶意类。
BCEL这个包中有个有趣的类com.sun.org.apache.bcel.internal.util.ClassLoader,它是一个ClassLoader(类加载器),但是它重写了Java内置的ClassLoader#loadClass()方法。
在ClassLoader#loadClass()中,接受一个String并且判断类名是否是以$$BCEL$$开头,如果是的话,调用createClass方法。
class_name的格式为:<原始类名>$$BCEL$$<Base64编码的字节码>

二、C3P0二次序列化

posted @ 2025-04-09 15:28  yywdd  阅读(412)  评论(0)    收藏  举报