目录
前言
1.远程文件包含
2.远程文件条件
第03关 远程文件包含
1.打开靶场
2.源码分析
3.本地文件包含渗透
4.远程文件包含渗透
前言
1.远程文件包含
远程文件包含是文件包含漏洞的其中一种。这种漏洞在文件的URI位于其他服务器上并作为参数传递给PHP函数“include”,“include_once”,“require”,或“require_once”的情况下可能会出现。
2.远程文件条件
本地文件包含与远程文件有着相同的原理,但前者只能包含服务器上存在的文件,而后者可以包含远程服务器上的文件。
File Inclusion(remote)需要将php.ini文件里的allow_url_include改成On
原因:远程文件包含漏洞的前提是:
(1) allow_url_fopen=On (默认打开) , allow_url_include=On(默认关闭,所以要手动改为On)
(2) 所包含的远程文件后缀不能与目标服务器语言相同. (比如目标服务器是php解析的, 远程服务器的文件不能是php)
记住,修改完php.ini配置文件后需要重启Apache服务。
第03关 远程文件包含
1.打开靶场
http://iwebsec.com:81/fi/04.php
2.源码分析
<?phprequire_once('../header.php');?>
<html><head><title>远程文件包含</title></head><h2>远程文件包含</h2><div class="alert alert-success"><p>/04.php?filename=http://127.0.0.1/vuln/fi/test.txt </p></div><body>
<?phpif(isset($_GET['filename'])){$filename = $_GET['filename'];include($filename);}else{exit();}?>
如上所示,代码中使用include函数并存在任意文件包含漏洞。
3.本地文件包含渗透
如下所示尝试和第01关卡本地文件包含一样的方法,参数为test.txt
http://iwebsec.com:81/fi/04.php?filename=test.txt
效果如下所示,很明显有本地包含漏洞的。
4.远程文件包含渗透
如果按照提示关卡提示输入参数/04.php?filename=http://127.0.0.1/vuln/fi/test.txt
http://iwebsec.com:81/fi/04.php?filename=http://127.0.0.1/vuln/fi/test.txt
如下所示提示没有这个文件,渗透失败。 不过失败的原因是路径不正确导致的,把路径修正即可渗透成功。
参数应该为/04.php?filename=http://127.0.0.1/fi/test.txt
iwebsec 靶场漏洞库iwebsechttp://iwebsec.com:81/fi//04.php?filename=http://127.0.0.1/fi/test.txt
如下所示渗透成功