一:简介
在许多 web 系统中都有文件下载功能,点击下载链接会向后台发送含文件名的下载请求,后台收到后执行下载代码将对应文件返回给浏览器完成下载。若后台收到文件名后直接拼进下载路径而不做安全判断,可能引发不安全的文件下载漏洞。攻击者若提交精心构造的路径(如../../../etc/passwd),可能导致后台敏感信息(密码文件、源代码等)被下载。所以设计文件下载功能时,对于前端传来的下载目标文件,一定要考虑安全,记住:与前端交互的数据不安全,不能大意!
二:靶场教学
1.进入靶场环境
2.点击执行下载
3.复制图像链接到浏览器查看
127.0.0.1/pikachu/vul/unsafedownload/execdownload.php?filename=mbl.png
4.发现拼接在了url上,尝试修改url看是否可以下载
http://127.0.0.1/pikachu/vul/unsafedownload/execdownload.php?filename=mbl.png
发现下载成功,存在文件下载漏洞
5.构造payload,下载敏感文件(不要盲目复制此代码,每个人的路径不尽相同)
http://127.0.0.1/pikachu/vul/unsafedownload/execdownload.php?filename=../down_nba.php
查看文件
方法二
查看是否可以对前端客户端代码进行修改从而达成文件下载的目的
1.F12打开查看器,点击箭头指的位置
2.选中科比
3.尝试修改href,这里已经改好了
execdownload.php?filename=../execdownload.php