任意文件下载
概述
很多网站提供文件下载功能,用户通过点击下载链接,下载到链接所对应的文件。如果攻击者可以通过构造文件路径,可以获取后台服务器敏感文件。
利用
Windows主机用“..”,不过PHP有个DIRECTORY_SEPARATOR的预定义常量有时候windows下也可以用../。
linux主机用“../”
关键是要找敏感文件,下面的是扩展阅读主要思路是找配置文件、日志文件和代码文件。其他端口服务的配置文件,例如MySQL密码什么的。
防御
- 对传入的文件名进行严格的过滤和限定
- 对文件下载的目录进行严格的限定
- chroot(基础)