一.漏洞介绍

一些网站由于业务需求,往往需要提供文件查看或文件下载功能,但若对用户查看或下载的文件不做限制,则恶意用户就能够查看或下载任意敏感文件,这就是文件查看与下载漏洞。

二.实验

1.下载一个文件

先进入pikachu,选中一个图片下载

 

 

 

 

 

 

 

 这时可以成功查看到下载的图片文件

2.下载上一级文件

 

 输入../是返回上一级这时,可以成功下载文件

能下载说明网页存在漏洞,是任意文件下载漏洞

三.任意文件读取漏洞

有些浏览器下载不了文件,因为没有脚本可执行,它会把文件内容展现出来,这叫任意文件读取漏洞

四.任意文件下载漏洞是如何产生的

查看文件代码

 

 

它没有对filename进行过滤

只允许下载某个文件或只允许下载某个目录下的文件叫白名单过滤

五.任意文件下载漏洞产生的原因

程序员写代码时没有对../进行过滤和程序员没有采用白名单的方式严格控制下载的文件

六.发现漏洞应该怎样做

1.下载常规的配置文件,例如: ssh,weblogic,ftp,mysql等相关配置(这些文件含有账号和密码)

2.下载各种.log文件,从中寻找一些后台地址,文件上传点之类的地方,如果运气好的话会获得一些前辈们的后门(可以获取管理员后台或网站地址,还有文件上传点)

3.下载web业务文件进行白盒审计,利用漏洞进一步攻入服务器。

尝试读取/root/.bash_history看自己是否具有root权限。

如果没有的话。我们只能按部就班的利用../来回跳转读取一些.ssh下的配置信息文件,读取mysql下的.bash_history文件。来查看是否记录了一些可以利用的相关信息。然后逐个下载我们需要审计的代码文件,但是下载的时候变得很繁琐,我们只能尝试去猜解目录,然后下载一些中间件的记录日志进行分析。

七.漏洞修复

1.过滤".",使用户在url中不能回溯上级目录

2.正则严格判断用户输入参数的格式

3.php.ini配置open_basedir限定文件访问范围

 

只允许访问某个目录下的文件,不允许跳转根目录

打开phpstudy的其他选项菜单的打开配置文件选择php-ini

 

 

 

 八.怎样去防御

1.通过代码限制

2.通过PHP自身的功能来限制目录

posted on 2021-01-05 13:59  i竹子  阅读(1375)  评论(0编辑  收藏  举报