思维导图

漏洞原理

提供文件查看或文件下载功能,但若对用户查看或下载的文件不做限制,则恶意用户就能够查看或下载任意敏感文件,这就是文件查看与下载漏洞

利用条件

  • 存在读文件的函数
  • 读取文件的路径用户可控且未校验或校验不严
  • 输出了文件内容

漏洞危害

下载服务器任意文件,如脚本代码、服务及系统配置文件等,可用得到的代码进一步代码审计,得到更多可利用漏洞。

常见出现任意文件下载/读取漏洞参数

从链接上
    • download.php?path=
    • download.php?file=
    • down.php?file=
    • data.php?file=
    • readfile.php?file=
    • read.php?filename=
    从参数上
    • &RealPath=
    • &FilePath=
    • &filepath=
    • &Filepath=
    • &Path=
    • &path=
    • &inputFile=
    • &Inputfile=
    • &url=
    • &urls=
    • &Lang=
    • &dis=
    • &data=
    • &Data=
    • &readfile=
    • &filep=
    • &src=
    • &menu=
    • META-INF
    • WEB-INF(Nginx)

修复方式

  • 过滤.(点),使用户在url中不能回溯上级目录
  • 正则严格判断用户输入参数的格式
  • php.ini配置open_basedir限定文件访问范围

实验

以pikachu中的unsafe filedownload为例子。

打开此靶场,发现界面提示点击头像名字可以下载头像。

1.png

点击名字,利用Burp进行抓包,发现存在Filename参数

2.png

使用../进行目录穿越下载自己想要得到的文件,一般存在此漏洞都是下载网站源代码,配置文件等。

3.png

4.png

最后修改:2020 年 11 月 08 日 09 : 09 AM
如果觉得我的文章对你有用,请随意赞赏