1. 任意文件读取
一些网站的需求,可能会提供文件查看与下载的功能。如果对用户查看或下载的文件没有限制或者限制绕过,就可以查看或下载任意文件。这些文件可以是源代码文件,配置文件,敏感文件等等。
1:敏感信息泄露
2:目录穿越,目录穿透,目录遍历
任意文件读取与下载漏洞原理
1:从权限的角度来讲,读取与下载都是属于读权限 漏洞成因
不管是任意文件读取还是任意文件下载,触发漏洞的条件都是相同的 1:存在读取文件的函数(web应用开放了读取功能)
2:读取文件的路径客户端可控(完全控制) 3:没有对文件路径进行校验或者校验不严(校验绕过) 4:输出了文件的内容
漏洞的危害
1:可以下载服务器的任意文件,包括脚本代码,系统敏感文件... 2:可以配合其他漏洞,构成完整攻击链
3:进行代码审计,查找更多的漏洞 ( 1:源代码 2:配置文件 3:敏感文件 4:日志文件 ...) 任意文件读取与下载攻防 过滤
../ fileName=str_replace("../","",$fileName);
/?f=../../../../../../../../windows\system32\drivers\etc\hosts
//windows\system32\drivers\etc\hosts
双写绕过
f=..././..././..././..././..././..././..././..././windows\system32\drivers\etc\hosts
../../../../../../../../windows\system32\drivers\etc\hosts
绝对路径 ?f=c:\windows\system32\drivers\etc\hosts
使用..\ ?f=..\..\..\..\..\..\..\..\windows\system32\drivers\etc\hosts
修复方案 严格判断用户的输入 让web用户只能访问(读取),所需要的文件和路径 避免目录遍历漏洞 让用户不能访问web根目录以外的路径
限定文件的访问范围,可以通过选项Open_basedir属性来限定文件访问的范围 open_basedir =
c:\phpstudy\www\