一.文件包含漏洞原理
网站对输入的文件路径和文件名过滤不足,攻击者构造恶意文件路径,让网站进行执行,攻击此网站下的服务器文件系统或搭建的网站资源,也可以对黑客部署的网站资源进行包含。
二.文件包含漏洞分类
**本地文件包含(LFI):**网站能打开并包含本地服务器的文件系统或搭建的网站资源
**远程文件包含(RFI):**网站能打开并包含攻击者搭建的网站下的资源
三.如何包含文件
1.利用配置文件php.ini
在例如小p的设置中的和网站php相同的php配置文件中进行编辑,在文件位置中也可以,而不是在网站根目录下。利用CTRL+F进行查找 使 allow_url_include=on allow_url_fopen=on


2.利用php伪协议
如果php.ini配置文件没开启,可以利用php伪协议进行文件包含

四.文件包含的利用
可以进行代码审计,通过代码审计工具对危险函数进行定位。
对于文件包含漏洞而言 include(),include_once(),require(),require_once(),这些函数允许将外部文件嵌入到当前脚本运行,然后通过php解释器进行执行,php解释器不依赖文件后缀判断是否执行文件,而是扫描文件内容中的php标签
五.漏洞复现
依旧使用dvwa靶场
Low级别:
配置文件php.ini的相关命令是开启的
1.知道文件路径,利用相对路径,也是基于绝对路径,读取到网站资源
不知道文件路径,可以基于常用文件名进行猜测,进行爆破也行。 ../用来跳转到上一级

2.利用绝对路径,读取网站服务器的文件系统

3.远程文件包含
Medium级别:
1.本地文件包含,文件确实存在但没显示,考虑到可能是被过滤了,考虑双写绕过或者编码绕过,此时编码无法绕过那就考虑双写绕过,../无法大小写

2.远程文件包含,hhtp://被过滤,考虑大小写双写,编码绕过等方式
High级别:
php.ini配置文件相关参数关闭,利用php伪协议