全网

面试题库

频道
  • 首页
  • 面试
  • 面试题库
  • 介绍一下如何利用路径遍历进行攻击及如何防范
  • 正文内容
  • 介绍一下如何利用路径遍历进行攻击及如何防范

    所属栏目:面试题库 发布时间:2016-01-17 09:03:34
    如果应用程序使用用户可控制的数据,以危险的方式访问位于应用服务器或其它后端文件系统的文件或目录,就会出现路径遍历

    String rurl = request.getParameter(“rurl”);
    BufferedWriter utput2 = new BufferedWriter(new FileWriter(new File(“/home/chenyz/”+rurl)));

    攻击者可以将路径遍历序列放入文件名内,向上回溯,从而访问服务器上的任何文件,路径遍历序列叫“点-点-斜线”(..\\)

    http://***/go.action?file=..\\..\\etc\\passwd

    避开过滤
    第一种是过滤文件名参数中是否存在任何路径遍历序列(..\\)
    如果程序尝试删除(..\\)来净化用户输入,可以用
    ….// ….\\/ …./\\ ….\\\\
    进行URL编码
    点–>%2e 反斜杠–>%2f 正斜杠–>%5c
    进行16为Unicode编码
    点–>%u002e 反斜杠–>%u2215 正斜杠–>%u2216
    进行双倍URL编码
    点–>%252e 反斜杠–>%u252f 正斜杠–>%u255c
    进行超长UTF-8 Unicode编码
    点–>%c0%2e %e0$40%ae %c0ae
    反斜杠–>%c0af %e0%80af %c0%af
    正斜杠–>%c0%5c %c0%80%5c
    预防路径遍历的方法:
    1.对用户提交的文件名进行相关解码与规范化
    2.程序使用一个硬编码,被允许访问的文件类型列表
    3.使用getCanonicalPath方法检查访问的文件是否位于应用程序指定的起始位置
    更多最新面试题库
    最新发布的面试题库
    面试题库分类 | 分类更细致、查找更方便