寻找文件包含漏洞

目录

前言

一. 环境准备

二. 寻找文件包含漏洞案例

三、文件包含漏洞防护

前言

       当用户自定义参数请求服务器中的动态资源或者在服务器上执行的代码包含了某个页面时,就会出现文件包含漏洞。如果让服务器执行了文件包含导致的恶意代码,系统就有可能被入侵。

和SQL注入等攻击方式一样,文件包含漏洞也是一种注入型漏洞,其本质就是输入一段用户能够控制的脚本或者代码,并让服务端执行。

什么叫包含呢?以PHP为例,我们常常把可重复使用的函数写入到单个文件中,在使用该函数时,直接调用此文件,而无需再次编写函数,这一过程叫做包含。

有时候由于网站功能需求,会让前端用户选择要包含的文件,而开发人员又没有对要包含的文件进行安全考虑,就导致攻击者可以通过修改文件的位置来让后台执行任意文件,从而导致文件包含漏洞。
 

一. 环境准备

1.开启OWASP靶机和Kali虚拟机

 

2.kali中登陆dvwa(用户名和密码都是 admin),进入 File Inclusion 页面

 

二. 寻找文件包含漏洞案例

1.File Inclusion 页面提示要测试包含的内容,将浏览器的URL中的page改为index.php进行尝试。(根据提示修改page的值进行测试)

2.为了尝试攻击,需要知道存在本地的文件名称,知道有个 index.php 在根目录下,所以尝试下目录遍历和文件包含。提交参数为../../index.php,可以证明存在文件包含漏洞了(“../”表示返回上一级目录)

 

3.下面尝试一下远程文件包含漏洞。首先在Kali启动 apache 服务器:service apache2 start

4.现在利用这个文件包含漏洞,包含一下 Kali 的 apache 页面:

http://192.168.xx.xx(OWASP靶机地址)/dvwa/vulnerabilities

/fi/?page=http://192.168.yy.yy(Kali主机地址)/index.html

(利用文件包含漏洞,运行在靶机上的网站远程包含到了Kali下 的 apache 页面(index.html))

 

三、文件包含漏洞防护


1、使用str_replace等方法过滤掉危险字符
2、配置open_basedir,防止目录遍历(open_basedir 将php所能打开的文件限制在指定的目录树中)
3、php版本升级,防止%00截断
4、对上传的文件进行重命名,防止被读取
5、对于动态包含的文件可以设置一个白名单,不读取非白名单的文件。
6、做好管理员权限划分,做好文件的权限管理,allow_url_include和allow_url_fopen最小权限化
 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值