远程文件包含攻击Remote File Include,它也属于是“代码注入”的一种,其原理就是注入一段用户能控制的脚本或代码,并让服务端执行。
文件包含漏洞可能出现在JSP、PHP、ASP等语言中,原理都是一样的,本文只介绍PHP文件包含漏洞。
本次实验需要使用2台Web服务器,实验环境如下:
Web1,IP地址192.168.80.129,利用NPMserv搭建php网站。
Web2,IP地址192.168.80.128,利用小旋风搭建ASP网站。
首先我们编写下图所示的一个带有文件包含漏洞的php文件:
要想成功利用文件包含漏洞进行攻击,需要满足以下两个条件:
Web应采用include()等文件包含函数通过动态变量的方式引入需要包含的文件
用户能够控制该动态变量
然后将文件放置到web1的PHP网站中,同时再在网站主目录中创建一个名为test.txt的文件,文件内容如下:
下面在客户端访问web1网站,利用文件包含漏洞,通过test.php来打开test.txt。
通过文件包含漏洞,不仅可以查看漏洞网站上的敏感文件,而且还可以运行远程服务器上的文件。比如我们在另一台服务器Web2上也创建一个名为rfi.txt的文件:
然后继续在客户端访问web1网站,利用文件包含漏洞,通过test.php来打开web2上的rfi.txt。
如果我们在web2上创建一个rfi.php文件,那么同样可以让它在web1上执行:
因而,如果黑客能够精心构造一些代码,那么远程文件包含攻击的威力还是比较强大的。
本文出自 “一壶浊酒” 博客,转载请与作者联系!