JavaEE开发篇&原生反序列化&CB链&CC链&Ysoserial链&字节码加载

Ethan医生4天前代码审计14


#补充JS逆向浏览器插件

Hook JS算法脚本

1、安装Tampermonkey(扶墙谷歌商店安装)

2、添加和启用JS插件

3、测试登录看控制台

脚本地址:https://github.com/Captain0X/hacker_tools/blob/main/crack_encrypt.js

 


image.jpg





#CB链-TemplatesImpl&字节码加载

类加载字节码导致RCE执行(同FastJson

参考:https://mp.weixin.qq.com/s/XPbbgLcBmHE7dmHswY_S3Q

-> TemplatesImpl#newTransformer()

-> TemplatesImpl#getTransletInstance()

-> TemplatesImpl#defineTransletClasses()

-> TransletClassLoader#defineClass()

 

#CC链-Transform&TransformedMap

commons-collections

Gadget chain:

ObjectInputStream.readObject()

AnnotationInvocationHandler.readObject())

MapEntry#setValue

TransformedMap#checkSetValue

ChainedTransformer.transform()

ConstantTransformer.transform()

Runtime.class

InvokerTransformer.transform()

getRuntime().exec("calc");

Class.getMethod()

Runtime.getRuntime()

Runtime.exec()

 

1、寻找sink执行点

作用:执行点触发RCE执行

->ChainedTransformer#transform()

->ConstantTransformer#transform()

->InvokerTransformer#transform()

2、寻找gadget调用链

作用:调用链实现承上启下

->TransformedMap#checkSetValue

->MapEntry#setValue

3、寻找Source入口点

作用:入口点重写方法调用

->AnnotationInvocationHandler#readObject()#setValue

->ObjectInputStream#readObject()

 

#CC链-Ysoserial&Transform&LazyMap

commons-collections

Gadget chain:

ObjectInputStream.readObject()

AnnotationInvocationHandler.readObject()

Map(Proxy).entrySet()

AnnotationInvocationHandler.invoke()

LazyMap.get()

ChainedTransformer.transform()

ConstantTransformer.transform()

InvokerTransformer.transform()

Method.invoke()

Class.getMethod()

InvokerTransformer.transform()

Method.invoke()

Runtime.getRuntime()

InvokerTransformer.transform()

Method.invoke()

Runtime.exec()


标签: JavaEE

相关文章

代码审计-JavaEE开发篇&第三方组件&依赖库挖掘&FastJson&Shrio&Log4j&H2DB

#JavaEE审计-第三方组件安全1、找存在漏洞的第三方组件(Package Checker插件)2、找组件漏洞利用入口条件(根据网上已知漏洞复现条件)3、找可控地方进行测试检测(根据网上已知漏洞利用...

JavaEE开发篇&文件安全&上传下载读取写入&功能点入口&Filter过滤器

#JavaEE审计-文件安全-上传&下载&读取&写入等1、搜索类别:业务关键字&相关操作类&封装关键字2、功能点也适用,直接找文件操作功能进行代码追溯new F...

JavaEE开发篇&Shiro反序列化&CB1链&source入口&sink执行&gadget链

JavaEE开发篇&Shiro反序列化&CB1链&source入口&sink执行&gadget链

#Shiro反序列化链知识点:1、Shiro用途和验证逻辑2、Shiro反序列化怎么造成3、Shiro反序列化漏洞利用 #Shiro反序列化链分析当获取用户请求时,大致的关键处理过程如下:·...

JavaEE开发篇&JNDI注入&高版本绕过&组件利用&LDAP服务&RMI服务

JavaEE开发篇&JNDI注入&高版本绕过&组件利用&LDAP服务&RMI服务

#JNDI注入-低版本-原生开发&触发模式-重要知识:1、JNDI,LDAP,RMI,反序列化关系2、LDAP,RMI利用时JDK版本限制3、JDK高版本绕过方法的所需条件注:前面2个知识点可...

JavaEE开发篇&FastJson反序列化&利用链跟踪&动态调试&autoType绕过

JavaEE开发篇&FastJson反序列化&利用链跟踪&动态调试&autoType绕过

#FastJson反序列化链知识点1、为什么触发方法会存在反序列化?2、利用链为什么要那样写才能触发?3、高版本中有哪些防御手段又怎么绕过的? #FastJson反序列化链分析基础参考:ht...

JavaEE开发篇&手搓内存马&Listen监听器&Filter过滤器&Servlet路由器

JavaEE开发篇&手搓内存马&Listen监听器&Filter过滤器&Servlet路由器

#知识预备:1、三大类:Listen,Filter,Servlet2、内存马技术解读(类型,植入,查杀等)3、其他技术原理分类(见上图见打包资源)(红队方向)了解什么是内存马,它有那些类型,和常规Sh...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。