-
游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。
赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!
TheHackerWorld官方
- 0
赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!
TheHackerWorld官方
问题
HACK1949
Tomcat PUT方法任意写文件漏洞复现(CVE-2017-12615)
版本信息
Tomcat测验版本:7.0.79
漏洞影响悉数的 Tomcat 版本:Apache Tomcat 7.0.0 - 7.0.79 (windows环境)
漏洞剖析
在tomcat官网下载一个Tomcat7的源码压缩包,打开来慢慢看看里边的.xml文件与java代码。
关键装备
装备文件途径
DefaultServlet类处理除了JSP文件以外的静态资源
readonly默认为true,在(CVE-2017-12615)的状况下为false。
servlet-name:default对应的是servlet-class:DefaultServlet
JspServlet类负责JSP文件的汇编与运转
servlet-name:jsp对应的是servlet-class:JspServlet
servlet-mapping主要是截获恳求的:
这儿说明了/类型的资源都由servlet-name:default处理,*.jsp与*.jspx类型的资源都由servlet-name:jsp处理
代码剖析
DefaultServlet.java文件途径
受影响的doPut函数
动态调试
进入doPut函数,上传的文件名为12w3.jsp/,能够看到readOnly==false
因为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
从File函数中出来,把name==/12w3.jsp/传进rebind函数,进入rebind函数
在rebind函数中调用File函数获得完整途径F:\\Tomcat\\apache-tomcat-7.0.79\\webapps\\ROOT\\12w3.jsp
将文件内容写入F:\\Tomcat\\apache-tomcat-7.0.79\\webapps\\ROOT\\12w3.jsp文件
上传完结。
漏洞使用
访问Tomcat主页,抓包
右击,挑选send to repeater
修正红框中的内容:
点击send发送。检查response,文件创建成功。
检查Tomcat根目录,多了一个backdoor.jsp,上传成功。
链接帖子
意见的链接
分享到其他网站
这个问题有0个答案
推荐的帖子