杭州电子科技大学-Vidar-Team
用户1685
添加快捷方式
分享
JDK20+之JNDI注入Bypass思路
输入“/”快速插入内容
JDK20+之JNDI注入Bypass思路
用户1685
用户1685
2024年4月22日修改
前言
何来bypass之说法,是因为JDK版本在20+之后,做了许多措施,来防止JNDI注入造成危害...
防护一: VersionHelper.isSerialDataAllowed
在进行LDAP注入时,通常的打法是进行反序列化
也就是在
java.naming/com.sun.jndi.ldap.Obj.decodeObject(Obj.java:237)
触发readObject方法
而在高版本JDK中,新增了是否允许反序列化数据的校验
VersionHelper.
isSerialDataAllowed
()
而该值默认为
false
,也就是说不允许
所以当我们尝试LDAP注入时会遇到如下报错
防护二: ObjectFactoriesFilter::checkRmiFilter
在进行RMI注入时,通常的打法是通过利用目标环境存在的
ObjectFactory
的实现类,利用该类的
getObjectInstance
方法进行一些特殊的利用,例如tomcat中的
BeanFactory
等等。
那么高版本JDK又做了啥呢