示例 - 存在恶意文件写入漏洞的代码:
<%@ page contentType="text/html;charset=UTF-8" language="java" %><%@ page import="java.io.File" %><%@ page import="java.io.FileOutputStream" %><%File file = new File(request.getParameter("f"));FileOutputStream fos = new FileOutputStream(file);fos.write(request.getParameter("c").getBytes());fos.flush();fos.close();out.println(file.getAbsoluteFile() + "\t" + file.exists());%>
2.1 跨目录写入文件测试
攻击者可能期望跨目录写入文件,如写入 SSH KEY、写入计划任务等等方式进行进一步的攻击。
请求:http://localhost:8000/modules/filesystem/file-w.jsp?f=../../a.rar&c=aaa,如下图:
2.2 绝对路径写入文件测试
攻击者通过传入恶意的参数f和c参数可以使用绝对路径在服务器上写入恶意的WebShell后门或其他文件,请求:http://localhost:8000/modules/filesystem/file-w.jsp?f=/tmp/2.txt&c=webshell,如下图:
