黑客是否可以在不先执行的情况下下载 php 文件?

信息安全 php 访问控制 限制
2021-08-29 20:39:59

我有一个 php 网站,所有内容都在 public_html\ 文件夹中,包括一个includes包含配置和类的文件夹。我告诉我的开发人员将其从公共文件夹中移开,但他说没有风险,因为文件是 php 文件,即使有人在浏览器中键入

www.example.com/includex/config.php

他们将得到的只是一个空白页。

那是对的吗?即使黑客以某种方式登录我的服务器以下载文件或使用 XSS 将其包含在他的服务器上的 php 文件中,是否有人可以下载 php 文件并查看里面的内容?

4个回答

为了阅读 PHP 代码,您需要一个目录遍历漏洞file_get_contents()或其他可利用的文件系统功能

mysql下的SQL Injection可以用来读取源码。例如:

select load_file("/var/www/index.php")

为了解决这个问题,请确保file_privs禁用 PHP 使用的 MySQL 用户帐户。如果display_errors = on在您的 php 配置中,那么攻击者可以获取到您的 Web 根目录的路径,并使用 sql 注入或目录遍历来读取源代码。

使用 FTP 意味着源代码以纯文本形式传输。 使用SFTP,并确保你有一个强密码——或者更好的是,设置一个 RSA 密钥。

注意备份文件,有时编辑者会创建index.php~或使用强制浏览index.php.orig可以发现的文件

除了各种服务器端漏洞外,泄露的 FTP 密码也是一个重大问题。有一类客户端感染会从 CuteFTP、FileZilla 和 DreamWeaver 等程序中获取您保存的 FTP 密码,并将登录凭据发送给攻击者。这是很常见的我个人见过数百甚至数千个发生这种情况的案例。通常,在不知不觉中泄露密码的人是无论如何都不再需要密码的人。

如果您想知道攻击者是否真的会挖掘您的配置文件以寻找密码,答案是明确的“”。通常,这是攻击者首先要做的事情之一,在破坏一台新机器的几分钟内。

攻击者有两种可能的方式可以将该文件作为文本读取,而不是执行它。

  1. 如果您的 Web 服务器配置错误,则可能无法执行 php。您显然需要安装 php 并在服务器端运行,以及有一个支持此功能的 Web 服务器。如果由于某种原因,您的 php 安装出现问题,那么理论上可以下载 php 文件“原始”。然而,这不太可能。

  2. 如果此脚本(或站点上的任何其他动态页面)中存在 LFI(本地文件包含)漏洞,则可以显示位于 Web 服务器上的文件。请参阅有关文件包含漏洞的 Wikipedia 页面,了解这会是什么样子。

顺便说一句,值得注意的是,为了使用PHP 文件,它们需要能够被浏览器访问。没有办法“隐藏”页面,除非你有另一个脚本在别处执行它。

泄露的 FTP 密码非常常见,是删除源文件的最常见方式之一,安装在开发人员网站上的恶意软件非常普遍,最近开发人员开始目睹针对它们的鱼叉式网络钓鱼攻击,以试图让黑客获得知识产权.

一种不太常见的方法,据我所知,只有一定数量的人知道,但是如果您在托管网站的 Linux 网络服务器上开发您的网站,那么您可能会遇到一些编辑问题软件将存储对开发人员隐藏的已编辑文件的备份,例如

登录.php~

这个文件因为它不是由网络服务器运行的,可以通过输入来访问

这将揭示备份 login.php 文件的来源以防止这种情况发生,您要么必须开发站点代码并将其上传到服务器,要么确保没有备份文件存储在公众拥有的目录中进入。

来源:2600杂志

如果攻击者能够访问会发生什么

数据库连接.php~

然后你真的很糟糕