Tomcat版本:8.0
漏洞介绍:
介绍
- Tomcat支持通过后端部署war文件,因此我们可以直接将webshell放置到web目录中。为了访问后端,需要权限。
Tomcat7+权限分为:
- manager(后台管理)
- manager-gui 拥有html页面权限
- manager-status 拥有查看status的权限
- manager-script 拥有text接口的权限,和status权限
- manager-jmx 拥有jmx权限,和status权限
- host-manager(虚拟主机管理)
- admin-gui 拥有html页面权限
- admin-script 拥有text接口权限
这些权限的究竟有什么作用,详情阅读 http://tomcat.apache.org/tomcat-8.5-doc/manager-howto.html
<?xml version="1.0" encoding="UTF-8"?>
<tomcat-users xmlns="http://tomcat.apache.org/xml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
version="1.0">
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<user username="tomcat" password="tomcat" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-gui,admin-script" />
</tomcat-users>
用户tomcat
拥有上述所有权限,密码是tomcat
正常安装的情况下,tomcat8
中默认没有任何用户,且manager
页面只允许本地IP
访问。只有管理员手工修改了这些属性的情况下,才可以进行攻击。
为什么需要上传war包,为什么不是tar.zip一类的:
war包是用来进行Web开发时一个网站项目下的所有代码,包括前台HTML/CSS/JS代码,以及后台JavaWeb的代码。
当开发人员开发完毕时,就会将源码打包给测试人员测试,测试完后若要发布则也会打包成War包进行发布。War包
可以放在Tomcat下的webapps或word目录,当Tomcat服务器启动时,War包即会随之解压源代码来进行自动部署。
漏洞复现:
我们依旧使用docker搭建漏洞靶场环境,一般来说tomcat默认应该是在8080端口,
打开tomcat管理页面 http://192.168.134.129:8080
,就是我们正常访问tomcat页面:
点击Manager App
登录,默认用户名密码tomcat:tomcat
先将jsp大马压缩为zip,再将zip后缀改名为war,然后上传war包:
我们尝试访问:http://192.168.134.129:8080/x/x.jsp