目录遍历攻击及防护

目录遍历攻击及如何防护

描述

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

攻击方法

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

发现漏洞

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

如何防范

防范目录遍历攻击漏洞,最有效的办法就是权限控制,谨慎处理传向文件系统API的参数。本人认为最好的防范方法就是组合使用下面两条:
1、净化数据对用户传过来的文件名参数进行硬编码或统一编码,对文件类型进行白名单控制,对包含恶意字符或者空字符的参数进行拒绝。

为了合理性,过滤文件名非法字符是必须的,果断地要干掉.....

windows现在已知的文件名非法字符有 \ / : * ? " < > |

linux文件名非法字符:"/" 既可代表目录树的根也可作为路径名中的分隔符(类似DOS下的"\),因此"/"不能出现在文件名中。

private static Pattern FilePattern = Pattern.compile("[\\\\/:*?\"<>|]");  
public static String filenameFilter(String str) {  
    return str==null?null:FilePattern.matcher(str).replaceAll("");  
}  

2、web应用程序可以使用chrooted环境包含被访问的web目录,或者使用绝对路径+参数来访问文件目录,时使其即使越权也在访问目录之内。www目录就是一个chroot应用。

chroot

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

转自:http://blog.csdn.net/Smallearth/article/details/40424155

            http://blog.csdn.net/xiejx618/article/details/17471819

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值