环境搭建的准备
win 2003(64bit) 2、JAVA环境、Tomcat-7.0.75
2、安装环境
1)这里的话,用windows 2003的虚拟机
前提要有一个java的环境,所以我这里就已经安装,就不讲怎么去安装java环境了。
接下来就是我们用安装的tomcat。我这里安装的是tomcat-7.0.75版本
前面的步骤一直选择默认,一直到这个地方要注意一下,如果说我们这里选择8080端口,那么它这里就会对8080端口进行监听。所以我们访问tomcat的时候要加上一个端口号。
这里是设置tomcat后台登录的账号和密码。所以我这里就设置了账号密码为tomcat。接下来就点击next一直安装完。
在本地访问127.0.0.1:8080,因为我们刚才设置的是8080端口,所以我们要加上8080,然后这个时候就可以看见我们的tomcat已经安装好了,由于我用的是虚拟机的ip在主机访问的,所以它这里的ip是虚拟机的ip。
漏洞复现
漏洞的形成原理
tomcat的servlet是在conf/web.xml配置的,通过配置文件可知,当后缀名为.jsp和jspx的时候,是通过jspservlet处理请求的:而其他的静态文件是通过defaultservlet处理的,可以得知1.jsp末尾有一个空格并不能匹配到jspservlet,而是交由defaultservlet去处理,当处理put请求时会调用resources.bind,dircontext为filedircontext调用rebind创建文件,又由于Windows不允许""作为文件名结尾,所以会创建一个.jsp文件,导致代码执行
2)复现的过程
安装tomcat之后,需要开启http put 首先打开tomcat安装目录,找到配置文件web.xml。
编辑一下这个web.xml文件,然后找到readonly,它这里默认的是被禁用了put上传,可以看见它这里的内容是true也就是只读模式。
如何开启??找到org.Apache.catalina.servlets.defaultservlet方法,并在其中添加如下命令
修改完配置文件之后,我们就需要去修改一下配置文件。
安装好了tomcat之后,我们的电脑有个tomcat图形化启动界面
点击stop停止
然后再点击这个start开启。
使用burpsuite发送构造的webshell,提示404,请求测试结果表明了猜测结论是正确的。JspServlet负责处理所有JSP和JPSX类型的动态请求,不能够处理PUT方法类型的请求
利用文件解析漏洞采用PUT方式上传jsp webshell文件。其中文件名设为/shell.
jsp%20。(如果文件名后缀是空格那么将会被tomcat给过滤掉。)
访问一下刚才写入的文件就可以看见上传成功了
最后喜欢我文章的朋友请加圈子关注我们,私信关键词:加群。(送免费资料和优惠券)
就会自动分享给你群号。欢迎大家加入我们的安全大家庭。提高大家的安全意识,提升大家的网络安全技能一直是我们的初衷和愿景,让我们共同成为守护信息世界的"SaFeMAN"。
还有可以关注我们微信公众号,在公众号上输入安界网,就可以关注到我们,领取资料和优惠券!