51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 2443|回复: 0
打印 上一主题 下一主题

代码安全测试:路径遍历漏洞的防范与检测

[复制链接]
  • TA的每日心情
    开心
    2021-4-25 14:19
  • 签到天数: 13 天

    连续签到: 1 天

    [LV.3]测试连长

    跳转到指定楼层
    1#
    发表于 2021-4-12 13:58:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
      路径遍历漏洞是什么?
      为了识别位于受限的父目录下的文件或目录,软件使用外部输入来构建路径。由于软件不能正确地过滤路径中的特殊元素,能够导致访问受限目录之外的位置。
      许多文件操作都发生在受限目录下。攻击者通过使用特殊元素(例如,“..”、“/”)可到达受限目录之外的位置,从而获取系统中其他位置的文件或目录。例如”../”作为一种常见的特殊字符串,在大多数操作系统中被解释为当前位置的父目录,这种使用特殊元素../的路径遍历漏洞又被称为相对路径遍历。路径遍历还包括使用绝对路径名(如"/usr/local/bin"),用于访问非预期的文件,这称为绝对路径遍历。

      路径遍历漏洞的构成条件有哪些?
      1、数据从不可靠来源(包括但不局限于不可靠用户的输入信息或是不可靠用户可能更改的文件)进入应用程序;
      2、该数据被用于构造新的文件目录,进一步进行访问或修改。

      路径遍历漏洞会造成哪些后果?
      关键词:执行未经授权的代码或命令;读取、修改文件或目录;崩溃,退出或重启
      1、攻击者可能创建或覆盖关键文件。例如程序或库,并用于执行;
      2、攻击者绕过安全机制获取重要数据。例如,在可访问的文件路径末尾附加”../”等路径并重定向到本无权限的重要数据,这可能允许攻击者绕过身份验证;
      3、攻击者可能能够覆盖,删除或损坏关键文件。例如程序,库或重要数据。这可能会阻止软件完全工作,并且在诸如认证之类的保护机制的情况下,它有可能锁定软件的每个用户。

      路径遍历漏洞的一些防范和修补建议:
      从实现角度,进行输入验证:对输入的信息进行验证。使用严格符合规范的可接受输入的白名单。拒绝任何不严格符合规范的输入,或将其转换为具有相应规格的输入。

      路径遍历漏洞的样例(以Java为例):
      下面的代码尝试检查给定的输入路径,并在验证安全之后删除给定的文件。在本例中,如果路径以字符串“/safe_dir/”开头,则认为该路径是安全的。
      

      然而这样验证也是有风险的,攻击者可以提供这样的输入:
      

      由于有“/safe_dir/”的限定,程序假定path就是可信的。
      当攻击者输入/safe_dir/../important.dat,则导致程序误删父目录下的文件important.dat。

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-5-7 19:37 , Processed in 0.066059 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表