什么是目录遍历攻击及如何防护
前几日研究某Web项目源代码,使用的是ThinkPHP框架,根目录下有个www目录,存放项目模块的入口文件。顿时茫然,本人一般直接把入口文件放在web根目录,而这里却是www目录,不知www目录是何作用,遂问老大,老大回:你查查什么是目录遍历攻击。所以才懂得www目录之所以存在的目的。。。
描述
攻击人员通过目录便利攻击可以获取系统文件及服务器的配置文件等等。一般来说,他们利用服务器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/