目录
什么是路径遍历攻击
容易发生路径遍历攻击的场景
路径遍历攻击类型
路径遍历攻击的防御措施
路径遍历攻击检测
路径遍历攻击案例
小结
路径遍历攻击(Path Traversal
Attack)是一种利用应用程序对文件路径处理不当的漏洞进行攻击的方法。攻击者通过操纵应用程序的输入,访问或修改不应该被访问的文件,从而实现攻击目的。路径遍历攻击也被称为目录遍历攻击或目录穿越攻击。
什么是路径遍历攻击
路径遍历攻击的核心原理在于利用目标系统处理用户输入时的不安全或疏忽行为,尤其是当应用程序接受用户提供的文件名或路径,并据此进行文件操作(如读取、写入或执行文件)时。攻击者会提交精心构造的恶意路径,其中包含了特殊的字符序列或编码,使得原本应该在限定目录下的文件操作跨越了预设边界,进而访问到服务器文件系统的其他位置。
容易发生路径遍历攻击的场景
- 文件上传功能,当应用程序允许用户上传文件并指定保存位置时,如果没有适当的校验,攻击者可能会上传文件到不应该被允许的目录。
- 文件下载功能,如果应用程序允许用户通过指定文件名来下载文件,而没有正确地校验和限制用户的输入,那么攻击者可能会尝试下载应用程序目录以外的文件。
- 文件包含漏洞:应用程序在包含文件时,未对包含的文件进行适当验证,攻击者可以包含恶意文件,执行恶意代码。例如如 PHP 的 include 或 require 语句。
这里只是列举几个场景,其实只要是应用程序在处理文件路径时,如果未能正确校验输入内容的情况下,都可能会导致出现路径遍历漏洞。例如一个 URL 如下:
http://example.com/getFile?filename=document.txt
攻击者可能会尝试修改 URL,以访问应用程序目录之外的文件:
http://example.com/getFile?filename=../../../../etc/passwd
路径遍历攻击类型
- 直接路径遍历攻击:攻击者直接构造特殊的路径字符串,访问或修改受限的文件。例如,攻击者通过在 URL 中添加“…/”来访问上级目录的文件。
- 间接路径遍历攻击:攻击者利用应用程序的其他漏洞(如文件包含漏洞、文件上传漏洞等)来实现路径遍历攻击。例如,攻击者通过包含一个恶意文件来实现路径遍历攻击。
路径遍历攻击的防御措施
- 输入校验:对用户输入内容进行严格校验,确保输入内容符合要求。例如,限制输入内容只能是字母、数字和特定字符,禁止输入特殊字符(如“…/”)。
- 访问控制:对文件访问进行严格控制,确保用户只能访问其有权限访问的文件。例如使用访问控制列表(ACL)限制用户对文件的访问权限。
- 错误处理:对文件操作过程中的错误进行妥善处理,避免暴露敏感信息。例如,在文件不存在或访问权限不足时,返回统一的错误信息,避免返回详细的错误信息。
路径遍历攻击检测
- Web应用防火墙(WAF):部署 WAF,对 Web 应用进行实时监控,拦截恶意请求。
- 安全扫描器:使用安全扫描器(如 OWASP ZAP、Nessus 等)定期对 Web 应用进行安全检测,发现潜在的安全漏洞。
- 代码审计工具:使用代码审计工具(如Fortify、Checkmarx等)对源代码进行安全审计,发现潜在的安全问题。
路径遍历攻击案例
- Apache Struts 2远程代码执行漏洞(S2-016):攻击者通过路径遍历攻击,上传恶意文件,实现远程代码执行。
- WordPress 插件 TimThumb 路径遍历漏洞:攻击者通过路径遍历攻击,上传恶意文件,实现远程代码执行。
- PHPMailer 路径遍历漏洞(CVE-2016-10033):攻击者通过路径遍历攻击,实现远程代码执行。
小结
路径遍历攻击是一种常见的 Web
安全漏洞,攻击者通过操纵文件路径,访问或修改不应该被访问的文件。为了防止出现此类漏洞,编写代码时需要注意安全问题并采取一系列防御措施来阻止此类攻击的发生。
文章持续更新中,微信搜索【路多辛】阅读更多优质文章
学习网络安全技术的方法无非三种:
第一种是报网络安全专业,现在叫网络空间安全专业,主要专业课程:程序设计、计算机组成原理原理、数据结构、操作系统原理、数据库系统、 计算机网络、人工智能、自然语言处理、社会计算、网络安全法律法规、网络安全、内容安全、数字取证、机器学习,多媒体技术,信息检索、舆情分析等。
第二种是自学,就是在网上找资源、找教程,或者是想办法认识一-些大佬,抱紧大腿,不过这种方法很耗时间,而且学习没有规划,可能很长一段时间感觉自己没有进步,容易劝退。
如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
第三种就是去找培训。
接下来,我会教你零基础入门快速入门上手网络安全。
网络安全入门到底是先学编程还是先学计算机基础?这是一个争议比较大的问题,有的人会建议先学编程,而有的人会建议先学计算机基础,其实这都是要学的。而且这些对学习网络安全来说非常重要。但是对于完全零基础的人来说又或者急于转行的人来说,学习编程或者计算机基础对他们来说都有一定的难度,并且花费时间太长。
第一阶段:基础准备 4周~6周
这个阶段是所有准备进入安全行业必学的部分,俗话说:基础不劳,地动山摇
第二阶段:web渗透
学习基础 时间:1周 ~ 2周:
① 了解基本概念:(SQL注入、XSS、上传、CSRF、一句话木马、等)为之后的WEB渗透测试打下基础。
② 查看一些论坛的一些Web渗透,学一学案例的思路,每一个站点都不一样,所以思路是主要的。
③ 学会提问的艺术,如果遇到不懂得要善于提问。
配置渗透环境 时间:3周 ~ 4周:
① 了解渗透测试常用的工具,例如(AWVS、SQLMAP、NMAP、BURP、中国菜刀等)。
② 下载这些工具无后门版本并且安装到计算机上。
③ 了解这些工具的使用场景,懂得基本的使用,推荐在Google上查找。
渗透实战操作 时间:约6周:
① 在网上搜索渗透实战案例,深入了解SQL注入、文件上传、解析漏洞等在实战中的使用。
② 自己搭建漏洞环境测试,推荐DWVA,SQLi-labs,Upload-labs,bWAPP。
③ 懂得渗透测试的阶段,每一个阶段需要做那些动作:例如PTES渗透测试执行标准。
④ 深入研究手工SQL注入,寻找绕过waf的方法,制作自己的脚本。
⑤ 研究文件上传的原理,如何进行截断、双重后缀欺骗(IIS、PHP)、解析漏洞利用(IIS、Nignix、Apache)等,参照:上传攻击框架。
⑥ 了解XSS形成原理和种类,在DWVA中进行实践,使用一个含有XSS漏洞的cms,安装安全狗等进行测试。
⑦ 了解一句话木马,并尝试编写过狗一句话。
⑧ 研究在Windows和Linux下的提升权限,Google关键词:提权
以上就是入门阶段
第三阶段:进阶
已经入门并且找到工作之后又该怎么进阶?详情看下图
给新手小白的入门建议:
新手入门学习最好还是从视频入手进行学习,视频的浅显易懂相比起晦涩的文字而言更容易吸收,这里我给大家准备了一套网络安全从入门到精通的视频学习资料包免费领取哦!
如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!