网站首页 > 精选教程 正文
该栏目为中科天齐软件安全中心全新规划的悟空云课堂,旨在科普软件安全相关知识,助力企业有效防范软件安全漏洞,提升网络安全防护能力。
本期主题为路径遍历漏洞的相关介绍。
路径遍历漏洞是什么?
为了识别位于受限的父目录下的文件或目录,软件使用外部输入来构建路径。由于软件不能正确地过滤路径中的特殊元素,能够导致访问受限目录之外的位置。
许多文件操作都发生在受限目录下。攻击者通过使用特殊元素(例如,“..”、“/”)可到达受限目录之外的位置,从而获取系统中其他位置的文件或目录。例如”../”作为一种常见的特殊字符串,在大多数操作系统中被解释为当前位置的父目录,这种使用特殊元素../的路径遍历漏洞又被称为相对路径遍历。路径遍历还包括使用绝对路径名(如"/usr/local/bin"),用于访问非预期的文件,这称为绝对路径遍历。
路径遍历漏洞的构成条件有哪些?
1、数据从不可靠来源(包括但不局限于不可靠用户的输入信息或是不可靠用户可能更改的文件)进入应用程序;
2、该数据被用于构造新的文件目录,进一步进行访问或修改。
路径遍历漏洞会造成哪些后果?
关键词:执行未经授权的代码或命令;读取、修改文件或目录;崩溃,退出或重启
1、攻击者可能创建或覆盖关键文件。例如程序或库,并用于执行;
2、攻击者绕过安全机制获取重要数据。例如,在可访问的文件路径末尾附加”../”等路径并重定向到本无权限的重要数据,这可能允许攻击者绕过身份验证;
3、攻击者可能能够覆盖,删除或损坏关键文件。例如程序,库或重要数据。这可能会阻止软件完全工作,并且在诸如认证之类的保护机制的情况下,它有可能锁定软件的每个用户。
路径遍历漏洞的一些防范和修补建议:
从实现角度,进行输入验证:对输入的信息进行验证。使用严格符合规范的可接受输入的白名单。拒绝任何不严格符合规范的输入,或将其转换为具有相应规格的输入。
路径遍历漏洞的样例(以Java为例):
下面的代码尝试检查给定的输入路径,并在验证安全之后删除给定的文件。在本例中,如果路径以字符串“/safe_dir/”开头,则认为该路径是安全的。
然而这样验证也是有风险的,攻击者可以提供这样的输入:
由于有“/safe_dir/”的限定,程序假定path就是可信的。
当攻击者输入/safe_dir/../important.dat,则导致程序误删父目录下的文件important.dat。
拓展阅读:
CWE-23:Relative Path Traversal:
https://cwe.mitre.org/data/definitions/23.html
CWE-36:Absolute Path Traversal:
https://cwe.mitre.org/data/definitions/36.html
(请使用浏览器打开)
往期阅读:(点击可跳转)
什么是SQL注入漏洞?
URL重定向(跳转)漏洞
软件源代码安全漏洞检测修复平台
软件安全 网络安全的最后一道防线
中科天齐公司是在中科院计算技术研究所的大力推动下
以中科院计算所国际领先的自主研究成果
“软件代码漏洞检测修复平台(Wukong悟空)”为基础
组建的高新技术企业
扫码关注公众号
扫码进入小程序
公众号:中科天齐
联系方式:400-636-0101
网址:www.woocoom.com
长按二维码关注我们
猜你喜欢
- 2024-11-08 「JAVA」属性、路径分隔符有何不同?file对象创建,文件过滤器
- 2024-11-08 路径之谜问题 Java java 路径规划
- 2024-11-08 运行在不同系统上的Java程序,如何处理路径分隔符的兼容问题
- 2024-11-08 身为架构师,这篇IO流File的讲解及使用你一定得看,写的非常详细
- 2024-11-08 Java数据库数据存取演化路径 java数据库语句
- 2024-11-08 JAVA学习:跨平台时文件路径处理,读写配置文件
- 2024-11-08 Javaweb 自定义 Servlet 实现按照访问路径转发
- 2024-11-08 揭秘 Java 跨系统文件路径组装的秘方!
- 2024-11-08 Java练习:机器人于网格左上角到达网格右下角,有多少不同路径
- 2024-11-08 Java路径-39-Java的泛型 java泛型方法的定义和使用
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)