简介
文件下载功能在很多web系统上都会出现,一般我们当点击下载链接,便会向后台发送一个下载请求,一般这个请求会包含一个需要下载的文件名称,后台在收到请求后 会开始执行下载代码,将该文件名对应的文件response给浏览器,从而完成下载。如果后台在收到请求的文件名后,将其直接拼进下载文件的路径中而不对其进行安全判断的话,则可能会引发不安全的文件下载漏洞。
此时如果 攻击者提交的不是一个程序预期的的文件名,而是一个精心构造的路径(比如../../../etc/passwd),则很有可能会直接将该指定的文件下载下来。从而导致后台敏感信息(密码文件、源代码等)被下载。
所以,在设计文件下载功能时,如果下载的目标文件是由前端传进来的,则一定要对传进来的文件进行安全考虑。切记:所有与前端交互的数据都是不安全的,不能掉以轻心!
靶机资料:
中文版Pikachu web靶机平台搭建指南,英语小白的福音
(让人欲罢不能的靶机系统)metasploitable2安装实战
工具资料:
渗透武器库--burpSuite实战(最强web安全工具,没有之一)
实战
初见文件下载漏洞
1.页面下载功能,下载一个看看。
2.使用burpsuite查看请求,发现使用filename进行传参。
3.直接使用../../../../../../../etc/passwd替换图片进行下载,需要自己一个个的试哈,../etc/passwd一个个试出来了。
4.扩展知识
相对路径:比如D:\TEST1\TEST2\TEST3
那么TEST2是TEST1的下级路径,TEST2又是TEST3的上级路径,所以上级路径或者下级路径都是相对而言的。一般上级路径可以用..来表示,当前路径可以用.来表示。
绝对路径:比如c:\根路径都是绝对了,任何路径相对于根路径都有一个绝对的最近的路径,也是绝对路径。
如果你想想别人指路的话,就可以悟出什么是相对的,什么是绝对的
相对的指路方法:从“这儿”向前走,右拐就到了
绝对的指路方法:汽车站向东100米(如果汽车站是绝对的位置),绝对的指路方法不依赖于指路的人在什么地方。
5.利用思路
可以下载网站源码,进行白盒审计发现更多的漏洞进行入侵和植入webshell
下载数据库备份文件,使用数据库查看工具获取数据。
/etc/passwd和/etc/shadow文件,使用破解工具进行比对破解密码。