目录

前言

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

iwebsec靶场 文件包含漏洞通关笔记4-远程文件包含-LMLPHP

2.源码分析

<?php

  require_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>
<?php
	if(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

 效果如下所示,很明显有本地包含漏洞的。

iwebsec靶场 文件包含漏洞通关笔记4-远程文件包含-LMLPHP

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

如下所示提示没有这个文件,渗透失败。 不过失败的原因是路径不正确导致的,把路径修正即可渗透成功。

iwebsec靶场 文件包含漏洞通关笔记4-远程文件包含-LMLPHP

参数应该为/04.php?filename=http://127.0.0.1/fi/test.txt

iwebsec 靶场漏洞库iwebseciwebsec靶场 文件包含漏洞通关笔记4-远程文件包含-LMLPHPhttp://iwebsec.com:81/fi//04.php?filename=http://127.0.0.1/fi/test.txt

如下所示渗透成功

iwebsec靶场 文件包含漏洞通关笔记4-远程文件包含-LMLPHP

09-13 05:41