Tomcat的目录结构
- bin-----存放Tomcat的脚本文件,例如启动、关闭
- conf----Tomcat的配置文件,例如server.xml和web.xml
- lib-----存放Tomcat运行需要的库文件(JAR包)
- logs----存放Tomcat执行时的LOG文件
- temp----存放Tomcat运行时所产生的临时文件
- webapps-Web发布目录,默认情况下把Web应用文件放于此目录
- work----存放jsp编译后产生的class文件
里面一些重要的文件,需要了解其作用:
server.xml:配置tomcat启动的端口号、host主机、Context等
web.xml文件:部署描述文件,这个web.xml中描述了一些默认的servlet,部署每个webapp时,都会调用这个文件,配置该web应用的默认servlet
tomcat-users.xml:tomcat的用户密码与权限。
漏洞
- CVE-2017-12615
影响版本:Tomcat7.0.0-7.0.79
漏洞原理:CVE-2017-12615漏洞称之为Tomcat PUT方法任意写文件漏洞,类似IIS的PUT 上传漏洞。该漏洞可以利用HTTP的PUT方法直接上传webshell到目标服务器, 从而获取权限。该漏洞是高危漏洞,在Tomcat的web.xml默认情况下不存在 该漏洞,但是一单开发者或者运维人员手动讲web.xml中的readonly设置为 false,可以通过 PUT / DELETE 进行文件操控。
该漏洞后续还有一个CVE-2017-12616的漏洞是对CVE-2017-12615的绕过,影 响 7.x、8.x、9.x版本。
漏洞的核心错误配置是web.xml中的readonly:
readonly true # 配置为false则产生漏洞
绕过方法汇总
Windows:
1、利用/shell.jsp::$DATA的方式绕过
2、/shell.jsp%20,空格绕过
3、/shell.jsp/ , Tomcat在处理文件时会删除最后的/
Linux:
1、/shell.jsp/ , Tomcat在处理文件时会删除最后的/
Tomcat-Ajp协议文件读取漏洞(CNVD-2020-10487)
GitHub - YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi: Tomcat-Ajp协议文件读取漏洞
漏洞利用工具使用(CNVD-2020-10487)
【nmap -sV ip地址】
利用
弱口令
漏洞原理
弱口令漏洞没有太多原理可讲,tocmat支持在管理界面部署项目,也就是部署war包。在tomcat-users.xml中定义了tomcat用户的信息和权限。
访问http://127.0.0.1:8080/manager/html,打开管理界面,输入用户名密码后即可登录后台,使用【WAR file to deploy】功能上传。上传后访问一句话木马即可。
注:图片来自网络



