Tomcat PUT方法任意写文件漏洞复现(CVE

版本信息 Tomcat测试版本:7.0.79 漏洞影响全部的 Tomcat 版本:Apache Tomcat 7.0.0 - 7.0.79 (windows环境) 漏洞分析 在tomcat官网下载一个Tomcat7的源码压缩包,打开来慢慢看看里面的与...

版本信息

Tomcat测试版本:7.0.79

漏洞影响全部的 Tomcat 版本:Apache Tomcat 7.0.0 - 7.0.79 (windows环境)

漏洞分析

在tomcat官网下载一个Tomcat7的源码压缩包,打开来慢慢看看里面的与。

关键配置

配置文件路径

类处理除了JSP文件以外的静态资源

默认为,在(CVE-2017-12615)的情况下为。

对应的是

类负责JSP文件的汇编与运行

servlet-mapping主要是截获请求的:

    1. 如果定义的是路径,那么以后所有对这个路径下资源的请求都会由中定义的处理;
    2. 如果你的定义的是资源格式例如等,那么对于所有符合这种格式的资源的请求都由指定的处理。

这里说明了类型的资源都由处理,与类型的资源都由处理

代码分析

文件路径

受影响的函数

动态调试

进入函数,上传的文件名为,可以看到

因为12w3.jsp/不存在服务器中,所以调用bind函数进行写入。进入resources.bind函数

进入dirContext.bind函数

进入bind函数

传入的name参数为/12w3.jsp/,在File函数中会将name中的/去除,进入File函数进行查看

child==/12w3.jsp/,由fs.normalize函数处理,进入fs.normalize函数

normalize(path)函数中调用normalize(path, len, off)函数对/进行处理,进入normalize(path, len, off)函数

normalize(path, len, off)函数对path处理完后,返回\12w3.jsp

从函数中出来,把传进rebind函数,进入函数

在函数中调用函数获得完整路径

将文件内容写入文件

上传完成。

漏洞利用

访问Tomcat主页,抓包

右击,选择

修改红框中的内容:

  1. 将请求改为
  2. 添加文件名(注意后面要添加)
  3. 添加文件内容

点击发送。查看,文件创建成功。

查看Tomcat根目录,多了一个,上传成功。

参考文章

配置Tomcat7:https://www.freebuf.com/articles/others-articles/258885.html

IDEA远程调试Tomcat:https://www.freebuf.com/sectool/258891.html

利用PUT方法的多种方法:https://wh0ale.github.io/2018/12/23/2018-12-23-利用PUT方法的多种方法/

servlet-mapping干什么用的:https://zhidao.baidu.com/question/538577773.html

seebug:https://paper.seebug.org/399/




  • 发表于 2021-04-09 12:29
  • 阅读 ( 313 )
  • 分类:互联网

0 条评论

请先 登录 后评论
华纳小周
华纳小周

707 篇文章

你可能感兴趣的文章

相关问题