7.1 使用NIO任意文件读取漏洞测试

示例 - 存在任意文件读取的NIO.2代码:

  1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  2. <%@ page import="java.io.IOException" %>
  3. <%@ page import="java.nio.file.Files" %>
  4. <%@ page import="java.nio.file.Paths" %>
  5. <pre>
  6. <%
  7. try {
  8. byte[] bytes = Files.readAllBytes(Paths.get(request.getParameter("file")));
  9. out.println(new String(bytes));
  10. } catch (IOException e) {
  11. e.printStackTrace();
  12. }
  13. %>
  14. </pre>

攻击者传入恶意的file即可读取服务器中的任意文件:
8.IO和NIO.2的文件系统支持 - 图1