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

访客4年前关于黑客接单991

版本信息

Tomcat测试版本:7.0.79

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

漏洞分析

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

关键配置

配置文件路径

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

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

对应的是

类负责 *** P文件的汇编与运行

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

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

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

代码分析

文件路径

受影响的函数

动态调试

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

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

进入dirContext.bind函数

1608899327_5fe5daff7dbdb708d4034.png!small?1608899326982

进入bind函数

1608899356_5fe5db1ce7c2f04d496ff.png!small?1608899356500

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

1608899374_5fe5db2ee47a591f7dcb8.png!small?1608899374467

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

1608899458_5fe5db823abf801db1856.png!small?1608899457822

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

1608899474_5fe5db9219e78cc2a65a2.png!small?1608899473737

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

1608899492_5fe5dba444bcd8720547c.png!small?1608899491812

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

1608899596_5fe5dc0ce96d744cdfcbb.png!small?1608899596500

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

1608899616_5fe5dc20060a4c5a264f3.png!small

将文件内容写入文件

1608899696_5fe5dc7087f089c3c5b41.png!small?1608899696106

上传完成。

漏洞利用

访问Tomcat主页,抓包

1608899855_5fe5dd0fa91b68c201170.png!small?1608899856461

右击,选择

1608899876_5fe5dd24d84e0f0303962.png!small?1608899876380

修改红框中的内容:

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

1608900007_5fe5dda7491a1bcb9125d.png!small?1608900006933

1608900013_5fe5ddadb1bda7c2c1069.png!small?1608900013230

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

1608900134_5fe5de2685a30ba14e816.png!small?1608900134310

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

1608900147_5fe5de339b725ec089d64.png!small?1608900147241

参考文章

配置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/




相关文章

华为手机应用程序变成黑色(华为手机应用变黑色怎么调回来)

华为手机应用程序变成黑色(华为手机应用变黑色怎么调回来)

本文目录一览: 1、华为手机软件都变成了黑白色怎么办? 2、华为手机系统更新后图标通知变黑色了? 3、华为手机为什么变成黑色了呢? 华为手机软件都变成了黑白色怎么办? 注意下近两天的新闻,所...

肉桂的功效与作用(肉桂的功效与作用禁忌)

  假如长期喝茶,喝醉了,便会遭遇一个难题。怎样选茶,尤其是高价位茶,不易挑到好茶叶。   近期有茶友问:这类肉桂粉如何选?好的肉桂粉有哪些规范?   是的,这几年牛栏坑的肉桂价格一直在涨,一斤几...

赌徒们,输掉身上最后一块钱的你,哭了吗?_腾讯科技

“风景旧曾谙,怎添无数离合悲欢”,我想这句话,说出了多少赌徒的血泪心声啊。如果一切能回到过去,你一定不会让自己陷入如此这般境地;如果一切能回到过去,你也一定不会让父母望着你的背影暗暗哭泣;如果一切能回...

怎样同步接收老婆微信不被发现(同步接受老婆

市场营销工作方针之一:首先,思想上去掉浮躁,坚持执著、实事求是、脚踏实地的工作方针。   企业网站运营策略:网站去除浮夸,布局合理分明,突出层次。   许多企业在进行网站制作的时候,往往只注重了网...

怎么查老公有没有私人微信

有妈妈说自己家的孩子什么都好,可是就是不爱吃青菜,只要看见青菜,就开始晃着小脑袋拒绝,只能趁他不注意以菜充肉放进嘴里,可吃到菜味立马就吐掉,弄得每次吃饭就像一场大战,怎么能让宝宝爱吃青菜呢,很多宝宝都...

怎么开融资融券股票账户(股票账户融资融券怎么使用)

什么叫股票融资,股票融资与一般股票交易有什么不同,怎样实际操作股票融资?“股票融资”又被称为“证劵个人信用买卖”,包含艺人经纪人向投资人出示的股票融资和金融企业向艺人经纪人出示的股票融资。修定前的证券...