zoukankan      html  css  js  c++  java
  • 网站安全(13) ——目录穿越漏洞(Directory Traversal)

    如果应用程序使用用户可控制的数据,以危险的方式访问位于应用服务器或其它后端文件系统的文件或目录,就会出现路径遍历。

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

    http://***/go.action?file=....etcpasswd

    避开过滤
    第一种是过滤文件名参数中是否存在任何路径遍历序列(..)
    如果程序尝试删除(..)来净化用户输入,可以用
    ….// …./ …./ ….\
    进行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

     数据过滤,对网站用户提交过来的文件名进行硬编码或者统一编码,对文件后缀进行白名单控制,对包含了恶意的符号或者空字节进行拒绝。
     
     Web应用程序可以使用chrooted环境访问包含被访问文件的目录,或者使用绝对路径+参数来控制访问目录,使其即使是越权或者跨越目录也是在指定的目录下。
  • 相关阅读:
    G
    ZOJ 3782
    23.内存池
    22.boost图模板
    21.boost Ford最短路径算法(效率低)
    20.boost dijkstra最短路径算法
    19.boost A*算法
    18.boost 图的拓扑排序
    17.广度优先遍历bfs
    16.boost图深度优先遍历DFS
  • 原文地址:https://www.cnblogs.com/vo-ov/p/3745651.html
Copyright © 2011-2022 走看看