什么是目录遍历攻击及如何防护

前几日研究某Web项目源代码,使用的是ThinkPHP框架,根目录下有个www目录,存放项目模块的入口文件。顿时茫然,本人一般直接把入口文件放在web根目录,而这里却是www目录,不知www目录是何作用,遂问老大,老大回:你查查什么是目录遍历攻击。所以才懂得www目录之所以存在的目的。。。
layer1

描述

攻击人员通过目录便利攻击可以获取系统文件及服务器的配置文件等等。一般来说,他们利用服务器API、文件标准权限进行攻击。严格来说,目录遍历攻击并不是一种web漏洞,而是网站设计人员的设计“漏洞”。如果web设计者设计的web内容没有恰当的访问控制,允许http遍历,攻击者就可以访问受限的目录,并可以在web根目录以外执行命令。

攻击方法

攻击者通过访问根目录,发送一系列”../”字符来遍历高层目录,并且可以执行系统命令,甚至使系统崩溃。

发现漏洞

1、可以利用web漏洞扫描器扫描一下web应用,不仅可以找出漏洞,还会提供解决办法,另外还可以发现是否存在sql漏洞及其他漏洞。
2、也可以查看web log,如果发现有未授权用户访问越级目录,说明有目录便利漏洞。

如何防范

防范目录遍历攻击漏洞,最有效的办法就是权限控制,谨慎处理传向文件系统API的参数。本人认为最好的防范方法就是组合使用下面两条:
1、净化数据:对用户传过来的文件名参数进行硬编码或统一编码,对文件类型进行白名单控制,对包含恶意字符或者空字符的参数进行拒绝。
2、web应用程序可以使用chrooted环境包含被访问的web目录,或者使用绝对路径+参数来访问文件目录,时使其即使越权也在访问目录之内。www目录就是一个chroot应用。

chroot

chroot是在unix系统的一个操作,针对正在运作的软件进程和它的子进程,改变它外显的根目录。一个运行在这个环境下,经由chroot设置根目录的程序,它不能够对这个指定根目录之外的文件进行访问动作,不能读取,也不能更改它的内容。chroot这一特殊表达可能指chroot(2)系统调用或chroot(8)前端程序。
由chroot创造出的那个根目录,叫做“chroot监狱”(chroot jail,或chroot prison)。more chroot使用

参考

浅析路径遍历漏洞
目录遍历攻击详解
目录遍历攻击防护


欢迎转载、分享,但是请保留原文链接。
本文链接: http://www.sundabao.com/%E4%BB%80%E4%B9%88%E6%98%AF%E7%9B%AE%E5%BD%95%E9%81%8D%E5%8E%86%E6%94%BB%E5%87%BB%E5%8F%8A%E5%A6%82%E4%BD%95%E9%98%B2%E6%8A%A4/
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果系统存在多个入口,并且没有对请求进行过滤,导致可能发生目录攻击,可以采取以下措施来修复该安全漏洞: 1. 输入验证和过滤:对于用户输入的请求参数,应该进行严格的验证和过滤,确保输入的路径是合法且安全的。可以使用白名单来限制允许的路径或字符,或者使用正则表达式来验证输入的路径是否符合预期的格式。 2. 使用正则表达式替换非法字符:如果用户输入的路径包含非法字符(如../),可以使用正则表达式将其替换为安全的字符或直接拒绝该请求。 3. 限制访问权限:确保应用程序只能访问必要的文件和目录,并限制对其他敏感文件和目录的访问权限。使用操作系统或框架提供的权限控制机制,限制应用程序对文件系统的访问能力。 4. 使用安全框架或库:使用经过安全审计和验证的安全框架或库,它们通常提供对目录攻击防护措施。例如,对于Java应用程序,可以使用Apache Commons IO库中的FilenameUtils类来规范化和检查文件路径。 5. 安全编码实践:开发人员应该了解目录攻击的风险,并遵循安全编码实践,如最小权限原则、输入验证、输出编码等。 6. 安全测试和代码审查:定期进行安全测试和代码审查,以发现潜在的目录漏洞和其他安全问题。同时,确保及时修复和更新系统中存在的安全漏洞。 以上措施应根据具体的应用程序和开发环境进行定制和实施。同时,建议参考相关的安全最佳实践和文档,以确保应用程序的安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值