1.file include 文件包含
一些web应用程序允许用户指定需访问的文件,或者允许用户将文件上传到服务器。稍后,web应用程序处理访问用户提供的输入。通过这样做,web应用程序存在恶意文件执行的可能性。如果被包含的文件在目标计算机本地,则称为“本地文件包含(Local File Inclusion,LFI)”。但被包含文件也可能在其他机器上,这种攻击就是“远程文件包含(Remote File Inclusion, RFI)”。
当php.ini开启allow_url_include时,就可以使用以下四个函数进行文件包含。再开启allow_url_fopen(默认关闭)就可以包含远程文件。
require(),找不到被包含的文件时会产生致命错误,并停止脚本运行。
include(),找不到被包含的文件时只会产生警告,脚本将继续运行。
include_once()与include()类似,唯一区别是如果该文件中的代码已经被包含,则不会再次包含。
require_()与require()类似,唯一的区别就是如果该文件中的代码已经被包含,则不会再次包含。
2.实验演示
在DVWA页面左侧选择File Inclusion。
目标是只使用文件包含来读../hackable/flags/fi.php
内的五句话。
2.1.low
DVWA Security设置为low,即开发者没有采取任何保护措施。