前言
菜某整理仅供学习,有误请赐教。
概念
个人理解:就是我们下载一个文件会传入一个参数,但是我们可以修改参数,让他下载其他的文件。因为是下载文件,所以我们可以看到文件里面的源码,内容。
文件读取跟文件下载的原理基本都是一样的,操作方法一致。
危害
他虽然不能去获取服务器的权限,但是可以作为信息收集的一种方式,他可以去下载一些源码,还有一些配置文件,如果搭建过网站的应该知道我们的数据库账号密码是在配置文件中的,那么下载了这个文件之后相当于泄露了数据库的账号密码。方便之后的日站。
简单的案例演示
php环境pikachu靶场
这里有个下载图片的位置
分别复制了图片和下方名字的下载链接的url链接,发现得到了文件的位置和链接的位置
我们看下方的下载链接的url可以看到下载实际上就是给这个PHP文件中传入了那个文件的名称,但是文件在PHP文件的下一级文件夹中,所以推测前方默认添加了一下下载download文件夹中的路径。
假设我们的目标是获得这个执行下载功能的PHP文件,但是他下载的目录在下一级文件夹,这时我们可以用..来跳出当前文件夹实现下载。
于是文件就被下载下来了。源码到手
从源码中可以看到他下载地址默认添加了download文件夹
漏洞的挖掘
1.找那种有下载功能的地方
2.根据URL进行判断,跟上面案例的判断方式一样
3.代码审计
4.扫描工具
5.公开的漏洞
判断目标目录结构的方法
从上面案例中我们能够看见,我们要进行文件下载的话是要知道网站的目录结构的。
以下是我整理的一些办法
1.用扫描工具(原理是用一个字典去挨个访问)
2.手工判断,根据url后面显示的目录,或者是跟案例一样复制一下地址。
下载读取配置文件
这个文件是数据库的配置文件
我们通过跳转到对应的文件夹中去下载
然后就获取了这里面的源码
数据库信息就泄露了。
总结
嗯。。总之。。就是好