转载来自:新手指南:DVWA-1.9全级别教程之File Inclusion
http://www.freebuf.com/articles/web/119150.html
(1)File Inclusion,意思是文件包含(漏洞),是指当服务器开启allow_url_include选项时,就可以通过php的某些特性函数(include(),require()和include_once(),require_once())利用url去动态包含文件,此时如果没有对文件来源进行严格审查,就会导致任意文件读取或者任意命令执行。文件包含漏洞分为本地文件包含漏洞与远程文件包含漏洞,远程文件包含漏洞是因为开启了php配置中的allow_url_fopen选项(选项开启之后,服务器允许包含一个远程的文件)。
(2)点击每一个选项,就会打印出相应内容,注意观察URL中的变化
简单点说就是file1.php被做为参数了,那么我们是不是可以加入其他参数,比如说其他文件
(3)我们试着读取配置文件密码账户文件/etc/shadow
我们发现不可行,同时我们根据返回的结果,我们可以判定的是这个系统为window系统。
(4)注意到返回的值暴露了window的路径,我们可以猜测到php.ini文件路径。
构造如下:
http://127.0.0.1/vulnerabilities/fi/?page=C:\phpStudy\WWW\php.ini
我们再使用相对路径,使用../返回,注意多写几个。这个可以保证返回到根目录
构造如下:
http://127.0.0.1/vulnerabilities/fi/?page=..\..\..\..\..\..\phpStudy\WWW\php.ini
(5)同时我们看到,配置文件中的Magic_quote_gpc选项为off。在php版本小于5.3.4的服务器中,当Magic_quote_gpc选项为off时,我们可以在文件名中使用%00进行截断,也就是说文件名中%00后的内容不会被识别,即下面两个url是完全等效的。
http://127.0.0.1/vulnerabilities/fi/page=..\..\..\..\..\..\phpStudy\WWW\php.ini%0033.php
http://127.0.0.1/vulnerabilities/fi/?page=..\..\..\..\..\..\phpStudy\WWW\php.ini
可惜的是由于本次实验环境的php版本为5.4.31,所以无法进行验证。
(6)当服务器的php配置中,选项allow_url_fopen与allow_url_include为开启状态时,服务器会允许包含远程服务器上的文件,如果对文件来源没有检查的话,就容易导致任意远程代码执行。
在本地上传一个php2.txt
<?%
phpinfo();
?>
没错,应该是执行了。。。。为什么没显示。。
(6)当做了http替换或../为0置换时,可以用hthttptp 以及 ..././
(7)使用file协议
file:///C:/phpStudy/WWW/dvwa/php2.txt
转载于:https://blog.51cto.com/antivirusjo/2060015