zoukankan      html  css  js  c++  java
  • 目录穿越漏洞

    简介

    目录穿越(也被称为目录遍历)是通过使用../等目录控制序列或者文件的绝对路径来访问存储在文件系统上的任意文件和目录,特别是应用程序源代码、配置文件、重要的系统文件等。

    路径穿越是网站被恶意人员利用,来得到其无权限访问的内容。

    通常是由于代码没有判断拼接路径的真实路径是否合法,最终导致文件读取。

    一般来讲用户在网站进行浏览,所能见到的网页都是位于网站根目录下的文件,根目录以外的文件是不允许被未授权访问的。但是安全方面做得不严谨的web程序可能会出现目录穿越漏洞,恶意人员可以利用这个漏洞来读取根目录以外的文件夹。一旦成功,本不应该暴露的敏感信息就可能被泄漏给恶意人员。

    攻击payload

    1.URL参数

    • ··/
    • ..
    • ..;/

    2.Nginx off by slash

    • https://vuln.site.com/files../

    3. UNC Bypass

    • https://localhost/c$/windows/win.ini

    4.过滤绕过

    • 单次替换,如..//
    • URL编码
    • 16位Unicode编码
    • 超长UTF-8编码

    防御

    方案一:过滤恶意字符,如.../.

    缺点:黑名单过滤不全的话,很容易被绕过。

    方案二:采用白名单方式,只允许读取特定文件,若不是特定文件直接拦截。也可以仅允许纯字母或数字字符等。

    方案三:按照.分割,读文件名参数和文件格式参数,如果文件名参数中有..,则拦截

    附录:UNC路径

    • UNC(Universal Naming Convention)
    • 为了迎合网络化的趋势,windows的地址风格(C:ABCdef文件\计算机名dirfile)向网络地址风格做了一次兼容变换。
    • 整体形式如:file://机器的IP地址/目录/文件
      • file表示协议类型
      • :// 后面是机器的网络地址
      • /后面是目录和文件名
    • 我们访问网上邻居所采用的命令行访问法,实际上应该称作UNC路径访问法。
    作者:AmyZYX
    出处:http://www.cnblogs.com/amyzhu/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    基于 Eclipse 平台的代码生成技术
    mshta命令用法示例(在dos命令弹出消息框)
    opengl绘制正弦曲线
    决策树学习过程中的额外收获---三叉树建立
    C++链表
    java web工程之Hibernate
    Hibernate配置文件学习心得
    TinyMCE在线编辑器使用方法初探
    待修改
    选择问题
  • 原文地址:https://www.cnblogs.com/amyzhu/p/14953958.html
Copyright © 2011-2022 走看看