首页 > 技术文章 > DVWA-文件包含漏洞

hai-long 2019-01-27 16:28 原文

本周学习内容:

1.学习web安全深度剖析;

2.学习安全视频;

3.学习乌云漏洞;

4.学习W3School中PHP;

 

 

实验内容:

进行DVWA文件包含实验

 

实验步骤:

Low

1.打开DVWA,进入DVWA Security模块将 Level修改为Low,点击Submit提交;

2.打开File Inclusion文件包含漏洞模块。

3.点击View Source查看服务器代码,发现对Page参数没有任何过滤和校验

4.导致的就是page参数的传入是不可控,构造url    http://localhost:8088/dvwa/vulnerabilities/fi/?page=php.ini

5.发现没有成功页面报错了,但是错误信息中暴露了服务器的绝对路径,接下来使用服务器绝对路径,接下来可以利用服务器绝对路径进行伪造http://localhost:8088/dvwa/vulnerabilities/fi/?page=C:\tools\xampp\htdocs\dvwa\php.ini

6.利用绝对路径查看PHP配置文件http://localhost:8088/dvwa/vulnerabilities/fi/?page=C:\tools\xampp\htdocs\dvwa\phpinfo.php

 

远程文件包含:

1.如果服务器的php.ini配置文件中,选项allow_url_fopenallow_url_include为On时,服务器会允许包含远程服务器上的文件,如果对文件来源没有检查的话,就容易导致任意远程代码执行。编辑一个txt文件phpinfo1.txt文件,这里的代码只是打印一句话

2.进入文件上传File Upload模块上传phpinfo1.txt文件,并复制上传链接的相对路径

 

2.回到文件包含模块构造URL,http://localhost:8088/dvwa/vulnerabilities/fi/?page=http://169.254.167.216:8088/dvwa/hackable/uploads/phpinfo1.txt点击进入,可以看到txt文件中的php脚本成功显示在页面上

 

 

Medium

1.打开DVWA,进入DVWA Security模块将 Level修改为Medium,点击Submit提交;

 2.打开File Inclusion文件包含漏洞模块。

 3.查看服务器源代码,发现中级代码中增加了对输入的校验,使用str_replace函数将输入信息中的http、https、../和../"替换为空

 4.此时可以使用双写hthttp://tp://进行远程文件包含的方法进行实验,这是因为代码中把http://删除,所以输入的URL有变成了http://(HTTPS也是一样的)

 

High

1.打开DVWA,进入DVWA Security模块将 Level修改为High,点击Submit提交;

 2.打开File Inclusion文件包含漏洞模块。

 3.查看服务器源代码,High级别的代码使用了fnmatch函数检查page参数,要求page参数的开头必须是file,服务器才会去包含相应的文件。

4.当把一个本地文件拖入浏览器打开时,用的就是file协议。

5.构造url  http://localhost:8088/dvwa/vulnerabilities/fi/?page=file:///C:/tools/xampp/htdocs/dvwa/hackable/uploads/phpinfo1.txt

 

Impossible

1.打开DVWA,进入DVWA Security模块将 Level修改为Impossible,点击Submit提交;

 2.打开File Inclusion文件包含漏洞模块

 3.查看服务器源代码,可以看出Impossible级别的代码,使page的参数是能为“include.php”、“file1.php”、“file2.php”、“file3.php”,限制访问的页面页面。只能访问页面中的这三个文件

 

推荐阅读