取证
webshell被删除了
题目描述与目标
题目提示:系统里有一个 Tomcat,某天收到通知称系统被攻击,webshell 已被删除。要求找到攻击者残留的痕迹并获取 flag。
已知:拿到服务器登录权限(root)。
目标:通过日志/缓存/残留文件进行取证,定位攻击痕迹,拿到 flag。
“webshell 被删除”说明不能靠访问 shell 本体,而要找:
Tomcat 日志(访问痕迹、执行痕迹)
Tomcat JSP 编译缓存(work/ 目录)
临时目录残留(/tmp、/dev/shm 等)
定时任务/后门等(一般兜底)
JSP webshell 被删,但 Tomcat 会把 JSP 编译成 .java/.class 缓存在 work/ 目录。
所以即使原始 JSP 删除,work/ 里仍可能残留“后门逻辑”,甚至直接泄露 flag。
确认 Tomcat 进程与路径
先定位 Tomcat 的运行目录,确认
catalina.base / catalina.home:1
ps -ef |grep tomcat

初步检查日志
1
2cd /opt/apache-tomcat-8.5.100/logs
ls尝试在 catalina.out 中搜索 flag:
1
grep -n "flag" catalina.out
结果无命中,说明 flag 不在启动日志里
检查 Tomcat work 目录(JSP 编译缓存)
work 目录存放 JSP 编译后的 java/class 文件,是此题的关键突破口。
进入 work:
1
2cd /opt/apache-tomcat-8.5.100/work
ls按 Tomcat 默认结构逐层进入:
1
2cd Catalina/localhost/a/org/apache/jsp
cat login_jsp.java得到flag
1
String cls = request.getParameter("flag{13dca8e7-347c-4d1e-94b6-c96754b442a6}");
暗影迷踪
一、题目分析
服务器运行 Tomcat
攻击者植入后门
提供 flagcheck 用于校验是否清理干净
目标:彻底清除后门,使 flagcheck 通过
根据第一题直接到达
1
cd /opt/apache-tomcat-8.5.100/webapps
发现异常应用目录
a,其中存在可疑文件:1
/opt/apache-tomcat-8.5.100/webapps/a/login.jsp
该 JSP 中存在动态加载并执行恶意代码的逻辑,判定为 Web 后门(JSP 内存马)。
Tomcat 缓存残留确认
Tomcat 会将 JSP 编译并缓存到
work目录,即使删除 JSP 文件,缓存仍可能存在。缓存路径为:
1
/opt/apache-tomcat-8.5.100/work/Catalina/localhost/a/
若不清理该目录,后门仍会被检测到。
后门清理
删除 Web 后门:
1
2rm -rf /opt/apache-tomcat-8.5.100/webapps/a/login.jsp
rm /opt/apache-tomcat-8.5.100/webapps/examples/login.jsp清除 Tomcat 缓存(关键)
1
rm -rf /opt/apache-tomcat-8.5.100/work/Catalina/localhost/*
删除攻击者残留文件
1
rm -f /var/crash/tomcat
清理定时任务
1
crontab -e
诡异的命令执行
只有搜索flag即可得到flag