示例 - 存在文件名重命名漏洞代码:

    1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    2. <%@ page import="java.io.File" %>
    3. <%
    4. String fileName1 = request.getParameter("s");
    5. String fileName2 = request.getParameter("d");
    6. File f = new File(fileName1);
    7. File d = new File(fileName2);
    8. f.renameTo(d);
    9. out.println(d + "\t" + d.exists());
    10. %>

    攻击者传入恶意的sd参数即可将文件名为1.txt的文本文件重命名为1.jsp可执行脚本文件,请求:http://localhost:8000/modules/filesystem/file-rename.jsp?s=/tmp/1.txt&d=/tmp/1.jsp,如下图:
    6. 重命名文件 - 图1
    攻击者会使用重命名的方式将(txt、jpg等资源文件)重命名为可执行脚本文件(jsp)来获得webshell从而控制Web应用系统,并绕过某些安全防护机制。常见的攻击手段是在文件上传时,上传包含恶意代码的图片文件,再利用重命名将其转为可执行的脚本文件。