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