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环境访问包含被访问文件的目录,或者使用绝对路径+参数来控制访问目录,使其即使是越权或者跨越目录也是在指定的目录下。
  • 相关阅读:
    Solaris+Oracle安装(详细图解)
    linux卸载和安装jdk
    UTF8, Unicode, GB2312格式串转换之C语言版
    linux安装ant
    在 Linux 平台下使用 JNI
    华为C/C++笔试题(1)
    c面试
    mongodb数据库
    YARN
    NPM(包管理器)
  • 原文地址:https://www.cnblogs.com/vo-ov/p/3745651.html
Copyright © 2011-2022 走看看