描述
攻击者利用一个弱点在输入验证利用点目标通过提供一个专门搭建的路径和斜杠字符的目的是获取任意文件或资源的访问。攻击者修改一个已知路径目标以达到材料,通过预期渠道是不可用的。这些攻击通常涉及添加额外的路径分隔符(/或\)和/或点(.),或在各种组合编码,以达到目标父目录或完全独立树的目录结构。
攻击的可能性
典型的严重性
执行流程
探索
指纹识别的操作系统:为了执行一个有效的路径遍历,对手需要知道底层的操作系统是什么,这样适当的文件分离器使用。
技术 |
端口映射。识别系统监听端口,并试图确定输入这些端口和协议类型。 |
TCP / IP指纹。对手使用各种软件进行连接或部分连接,观察从操作系统的反应。使用这些反应,他们试图猜测实际的操作系统。 |
引发错误信息的错误消息 |
问卷调查应用程序:使用人工或自动手段,敌人将调查目标应用程序寻找所有地区用户输入被指定一个文件名或路径。
技术 |
使用搜索工具跟踪和记录所有web页面上的链接。特别注意任何链接,包括参数的URL。 |
使用一个代理工具来记录所有的链接访问期间手动遍历一个web应用程序。特别注意任何链接,包括参数的URL。这种类型的手工遍历经常需要识别形式GET方法而不是POST形式形式。 |
使用浏览器手动探索一个网站并分析它是如何构建的。许多浏览器插件可以促进分析或自动发现的URL。 |
实验
尝试不同输入参数:使用人工或自动手段,敌人企图不同相对文件路径组合在所有用户输入位置和观察发现反应。
技术 |
提供“. ./”或“. .\“初任何文件名遍历到父目录 |
使用探针的列表字符串作为路径遍历负载。不同的字符串可能被用于不同的平台。字符串包含相对路径序列如“. . /”。 |
使用一个代理工具记录结果相对路径遍历探针的手工输入已知的url。 |
利用
访问、修改或执行任意文件。敌人注入路径遍历语法识别脆弱的输入导致不恰当的阅读、写作或执行的文件。敌人能够读取目录或文件,他们通常不允许读。敌人也可以访问数据在web文档根之外,或包括脚本、源代码和其他类型的文件从外部网站。一旦对手访问任意文件,他们也可以修改文件。在特定情况下,对手也可以执行任意代码或系统命令。
技术 |
操作文件及其路径通过注入相对路径序列(如。“. . /”)。 |
下载文件、修改文件,或试图执行shell命令(二进制文件)。 |
先决条件
目标应用程序必须接受一个字符串作为用户输入,无法清洁的组合字符输入的有特殊意义的上下文中的路径导航,并将用户提供的字符串插入路径导航命令。 |
技能要求
(等级:低) 注入恶意代码的网页 |
(级别:高) 在应用程序中绕过非琐碎的过滤器 |
后果
这个表指定不同的个体与攻击模式相关的后果。范围确定违反了安全属性,而影响了负面的技术影响,如果敌人成功的攻击。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能有高可能性模式将被用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
范围 |
影响 |
可能性 |
完整性 |
修改数据 |
|
保密 |
读取数据 |
|
保密
完整性
可用性 |
执行未经授权的命令 |
|
访问控制 |
旁路保护机制 |
|
可用性 |
不可靠的执行 |
|
缓解措施
设计:输入验证。假设用户输入是有恶意的。利用严格的类型、字符和编码执行 |
实现:对所有远程执行输入验证内容,包括远程和用户生成内容。 |
实现:验证用户输入只接受已知的好。确保所有内容交付给客户是消毒与一个可接受的内容规范——使用一个allowlist方法。 |
实现:喜欢使用文件系统调用时无需用户输入工作 |
实现:使用间接引用,而不是实际的文件名。 |
实现:使用可能的文件访问权限在开发和部署web应用程序。 |
例子,实例
攻击者使用相对路径遍历访问应用程序中的文件。这是一个访问用户的密码文件的例子。
http://www.example.com/getProfile.jsp?filename=../../../../etc/passwd 然而,目标应用程序使用正则表达式来确保没有相对路径序列是通过应用程序的web页面。应用程序将从这个正则表达式替换所有匹配空字符串。 然后攻击者创建特殊载荷绕过这个过滤器:
http://www.example.com/getProfile.jsp?文件名= % 2 e % 2 e / e % 2 e % 2 / % 2 e % 2 e / e % 2 e % 2 / etc / passwd 当应用程序被这个输入字符串,它将被攻击者所需的向量。 |
引用
内容的历史
提交 |
提交日期 |
提交者 |
组织 |
2014-06-23
(版本2.6) |
CAPEC内容团队 |
manbetx客户端首页 |
|
修改 |
修改日期 |
修饰符 |
组织 |
2015-11-09
(版本2.7) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Attack_Phases |
2015-12-07
(版本2.8) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Attack_Phases |
2017-01-09
(版本2.9) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Attack_Phases Related_Weaknesses |
2017-05-01
(版本2.10) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Attack_Phases |
2017-08-04
(版本2.11) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Attack_Phases |
2018-07-31
(版本2.12) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Attack_Motivation-Consequences Attack_Phases |
2019-04-04
(版本3.1) |
CAPEC内容团队 |
manbetx客户端首页 |
更新后的后果 |
2020-07-30
(版本3.3) |
CAPEC内容团队 |
manbetx客户端首页 |
应对Execution_Flow更新, |
2020-12-17
(版本3.4) |
CAPEC内容团队 |
manbetx客户端首页 |
更新的引用 |
2021-10-21
(版本3.6) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Execution_Flow |
2022-09-29
(版本3.8) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Example_Instances |
|