dvwa模拟实验7——文件包含

文件包含及漏洞

1.基本内容

1.1 介绍

文件包含:开发人员将相同的函数写入单独的文件中,需要使用某个函数时直接调用此文件,无需再次编写,这种文件调用的过程称文件包含。
文件包含漏洞:开发人员为了使代码更加灵活,会将被包含的文件设置为变量,用来进行动态调用,从而导致客户端可以恶意调用一个恶意文件,造成文件包含漏洞。

1.2 文件包含的函数

Require:找不到被包含的文件,报错,并且停止运行脚本;
Include:找不到被包含的文件,只会报错,但是会继续运行脚本;
Require_once:与require类似,区别在于当重复调用同一文件时,程序只调用一次;
Include_once:与include类似,区别在于当重复调用同一文件时,程序只调用一次。

1.3 文件包含的特征

?page=
?file=
?home=

1.4 目录遍历和文件包含的区别

目录遍历:是可以读取web目录以外的其他目录,根源在于对路径访问权限设置不严格,针对于本系统。
文件包含:是利用函数来包含web目录以外的文件,分为本地包含和远程包含。

1.5 分类

本地文件包含:通过浏览器包含web服务器上的文件,这种漏洞是因为浏览器包含文件时没有进行严格的过滤允许遍历目录的字符注入浏览器并执行;
远程文件包含:允许攻击者包含一个远程的文件,一般是在远程服务器上预先设置好的脚本。此漏洞是因为浏览器对用户的输入没有进行检查,导致不同程度的信息泄露、拒绝服务攻击甚至在目标主机上执行代码。

2. dvwa模拟实验

实验开始前要保证php.ini中allow_url_fopen和allow_url_include要为On,即开启远程读取本地包含
dvwa模拟实验7——文件包含_第1张图片
dvwa模拟实验7——文件包含_第2张图片
dvwa模拟实验7——文件包含_第3张图片

2.1 low等级

1.查看源代码
dvwa模拟实验7——文件包含_第4张图片
从源码中可以出,服务器对参数page并没有做任何的过滤操作
服务器期望用进行的操作是点击file1.php、file2.php、file3.php三个文件,服务器包含这三个文件,并将结果返回。
dvwa模拟实验7——文件包含_第5张图片
(注意:在包含文件时,会根据文件的内容,来决定是执行代码,还是直接打印或输出)
2.实验过程
本地包含:
2.1 构造url,查看服务器操作系统的类型
dvwa模拟实验7——文件包含_第6张图片
使用?page=/etc/passwd测试服务器的操作系统,如果是linux操作系统,它会显示该文件下的内容,然而这里是windows系统,所以显示了该服务器的绝对路径:
C:\phpstudy\PHPTutorial\WWW\DVWA\vulnerabilities\fi\index.php
2.2 构造url,查看windows系统的版本
在这里插入图片描述
Windows版本是:Windows server 2003
2.3 构造url,查看Windows系统下的用户名和密码

2.4 构造url,查看PHP的配置信息
配置信息存放在php.ini文件中
dvwa模拟实验7——文件包含_第7张图片
“…/…/”表示的是返回上一层目录
dvwa模拟实验7——文件包含_第8张图片
2.5 构造url,查看phpinfo.php
dvwa模拟实验7——文件包含_第9张图片
dvwa模拟实验7——文件包含_第10张图片
显示了php的所有详细信息
2.6在相同目录下创建一个1.txt,将phpinfo.php中的内容复制到1.txt中,构造url并查看
dvwa模拟实验7——文件包含_第11张图片
发现访问1.txt时的输出和访问phpinfo.php的结果相同,所以说在包含文件时,会根据文件的内容,来决定是执行代码,还是直接打印或输出。在文本文档中的保存的是php代码,所以即使它的文档格式是txt,也会执行php代码。
远程文件包含
2.7 服务器确保开启了远程读写服务
dvwa模拟实验7——文件包含_第12张图片
2.8 将反弹shell的脚本放到网站根目录下(/var/www/html)
(原目录:/usr/share/webshells/php/php-reverse-shell.php)这里将它重命名为getshell.py
dvwa模拟实验7——文件包含_第13张图片
2.9 在getshell.py脚本中修改IP和端口
(注:要连接谁,写谁的IP,这里要服务器端链接kali的web端,所以要改为kali的IP)
dvwa模拟实验7——文件包含_第14张图片
2.10 在kali你开启apache服务(即开启一个web服务),开启对端口1234的监听
(注:脚本在网站根目录下,所以必须在根目录下监听1234端口)
dvwa模拟实验7——文件包含_第15张图片
在这里插入图片描述
2.11 远程文件包含
在这里插入图片描述
成功得到管理权限:
dvwa模拟实验7——文件包含_第16张图片

2.2 medium等级

1.查看源代码
dvwa模拟实验7——文件包含_第17张图片
2.绕过方式
通过嵌套的方法进行绕过。例如:htthttp://p://
利用file:///
3.实验过程
dvwa模拟实验7——文件包含_第18张图片
dvwa模拟实验7——文件包含_第19张图片
dvwa模拟实验7——文件包含_第20张图片

2.3 high等级

1.查看源代码
dvwa模拟实验7——文件包含_第21张图片
dvwa模拟实验7——文件包含_第22张图片
类似于设置黑名单,利用函数fnmatch检查page的参数必须是以file开头的,或者include.php
2.绕过方式
利用file:///
3.实验过程
dvwa模拟实验7——文件包含_第23张图片

2.4 impossible等级

1.查看源代码
dvwa模拟实验7——文件包含_第24张图片
通过设置白名单来防御文件包含漏洞,page的参数只允许file1.php、file2.php、file3.php和
Include.php。

你可能感兴趣的:(DVWA模拟实验)