Tomcat CVE-2017-12615
tomcat是一个开源而且免费的jsp服务器,默认端口 : 8080,属于轻量级应用服务器。它可以实现JavaWeb程序的装载,是配置JSP(Java Server Page)和JAVA系统必备的一款环境。
在历史上也披露出来了很多的漏洞 , 这里我们讲几个经典的漏洞复现
漏洞描述
当 Tomcat运行在Windows操作系统时,且启用了HTTP PUT请求方法(例如,将 readonly初始化参数由默认值设置为false),攻击者将有可能可通过精心构造的攻击请求数据包向服务器上传包含任意代码的 JSP 文件,JSP文件中的恶意代码将能被服务器执行。导致服务器上的数据泄露或获取服务器权限。
漏洞原理
当在Tomcat的conf(配置目录下)/web.xml配置文件中添加readonly设置为false时,将导致该漏洞产生,(需要允许put请求) , 攻击者可以利用PUT方法通过精心构造的数据包向存在漏洞的服务器里面上传jsp一句话文件,从而造成远程命令执行,getshell等。
影响范围
Apache Tomcat 7.0.0 - 7.0.79
Apache Tomcat 8.5.19
环境搭建
cd vulhub-master/tomcat/CVE-2017-12615
docker-compose up -d
首页抓包,修改为 PUT 方式提交Tomcat允许适用put方法上传任意文件类型,但不允许jsp后缀文件上传,因此我们需要配合windows的解析漏洞
PUT /shell.jsp/
PUT /shell.jsp%20
PUT /shell.jsp::$DATA
Tomcat后台弱口令部署war包
漏洞原理
在tomcat8环境下默认进入后台的密码为 tomcat/tomcat ,未修改造成未授权即可进入后台,或者管理员把密码设置成弱口令。
影响版本
全版本(前提是人家存在弱口令)
环境搭建
cd vulhub-master/tomcat/tomcat8
docker-compose up -d
补充:
其他弱口令
admin:admin
ADMIN:ADMIN
admin:j5Brn9
admin:None
admin:tomcat
cxsdk:kdsxc
j2deployer:j2deployer
ovwebusr:OvW*busr1
QCC:QLogic66
role:changethis
role1:role1
role1:tomcat
root:root
tomcat:changethis
tomcat:s3cret
tomcat:tomcat
tomcat:manager
xampp:xampp
github -> tomcat管理控制台弱口令字典
1. 制作WAR包,将JSP木马压缩为ZIP格式,然后修改后缀为war就可以了。
2. jar -cvf cmd.war peak.jsp
![](https://i-blog.csdnimg.cn/direct/615db9e5bc4c43d2b3e780b7f2bd92b6.png)
CVE-2020-1938
漏洞原理
Tomcat 配置了两个Connecto,它们分别是 HTTP 和 AJP :HTTP默认端口为8080,处理http请求,而AJP默认端口8009,用于处理 AJP 协议的请求,漏洞由于Tomcat AJP协议存在缺陷而导致,攻击者利用该漏洞可通过构造特定参数,读取服务器webapp下的任意文件以及可以包含任意文件,如果有某上传点,上传图片马等等,即可以获取shell。
例如:
可以读取webapp配置文件或源码文件。
此外如果目标应用有文件上传的功能情况下,配合为文件包含漏洞利用GetShell。
影响版本
Apache Tomcat 6
Tomcat 7系列 <7.0.100
Tomcat 8系列 < 8.5.51
Tomcat 9 系列 <9.0.31
开启了8009端口的ajp服务
环境搭建
cd vulhub-master/tomcat/CVE-2020-1938
docker-compose up -d
POC:
python2 CVE-2020-1938.py -p 8009 -f /WEB-INF/web.xml 192.168.171.137
漏洞修复
1. 更新到最新版本
2. 关闭AJP服务,修改Tomcat配置文件Service.xml,注释掉。
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
3. 配置ajp配置中的secretRequired跟secret属性来限制认证。