从 Ubuntu 目录中的所有 php 文件中删除注入的代码

从 Ubuntu 目录中的所有 php 文件中删除注入的代码

我有一个网站,其中一些代码被注入到大量 php 文件中,由于文件数量太多,手动删除它们是不可行的。

我可以从所有文件中的注入代码中搜索变量名称,它会为我提供受影响变量的列表,但我无法将实际代码放入搜索中,因为它包含双引号、单引号和所有类型的字符。

这是我用于搜索的内容:

grep -Ril "ljdcvhg" '站点文件夹路径'

有没有办法搜索整个 php 函数/注入代码并删除?请注意我对 Linux 很陌生。

我本来打算把黑客代码放在这里,但我不确定这是否允许。

任何帮助表示赞赏。

答案1

作为一个基于 PHP 的前端遭到破坏的人,代码被注入其中,并尝试自行清理注入的代码(从框架的干净 tarball 和我所做的修改恢复站点),请允许我提供一些现实世界的专业知识和答案:解决这个问题的唯一真正答案是重新开始。尝试清理代码将非常困难。它可能无处不在,但您无法找到全部。您的系统也很可能受到损害,不仅仅是 PHP,核心系统本身也可能运行恶意软件,这些软件是通过注入和混淆的代码下载的。

经过验证的解决方案,也被普遍认为是在这种情况下唯一明智的选择,那就是从 Orbit *删除它并从干净的备份(或版本控制的代码)重新开始。不仅仅是站点代码,还有服务器本身。注入 PHP 站点的代码可以运行任何内容,从简单的端口扫描到操作系统本身上的全面恶意软件安装,再到 rootkit。因此,重新开始,通过擦除其所在的服务器,破坏站点代码库,并从干净的版本控制代码或您拥有的最后一个干净的备份中进行恢复。

(TL;DR,不要尝试删除所有注入的代码,只需在干净的服务器上重新开始并从备份或版本控制存储库数据中恢复)

请注意,我还在私人实验室中破坏了自己的网站,并证明混淆的代码可用于将恶意软件下载到主机服务器对于访问受感染服务器的客户端...这就是为什么您应该破坏环境并从干净的备份重新开始。然后,随后修补用于在网站上注入代码的漏洞。

* 如果您不知道这是什么意思,“从轨道上核武器”是一个口语术语,基本上意味着关闭站点,关闭服务器,并擦除整个硬盘驱动器并从服务器的全新安装开始网站代码库。

答案2

您可以尝试执行以下操作:

  • 获得具有代码格式化功能的专业 PHP 编辑器,例如 PHPEclipse、PHP Storm 或 NuSphere,甚至 Notepad++,在 Linux 上是 Kate,在 MacOS 上是 TextMate
  • 您可以在所有文件中搜索给定字符串并将其删除
  • 您还可以再次格式化代码(代码格式化程序,包括 HTML),以便您可以看到任何混淆的内容
  • 如果您可以看到突出显示的代码,它也会对您有所帮助,例如,任何未正确突出显示的内容都可能是混淆的内容
  • 您需要正确阅读所有代码
  • 编辑器将帮助您保护代码免遭进一步利用
  • 如果PNG或JPEG图像中没有任何PHP或JS代码,则需要检查所有文件(包括图片)的竞争。
  • 您可能需要将 PHP 运行时升级到带有最新补丁的版本,甚至将其迁移到较新的 PHP7 并保持最新。
  • 您可以使用 Cloud Flare 来防御漏洞
  • 您可能会考虑使用不同的托管或重新创建帐户
  • 有时调整 php.ini 可以通过施加限制和约束来帮助
  • 如果您使用过非自定义软件,您可以下载更新的修补版本并尝试与您现有的软件合并,以便修补它
  • 有时,例如在 WordPress 中,您可以启用自动更新

另外,您的服务器可能受到损害,因此您可以尝试重建它。例如重新配置虚拟机。

您还可以尝试通过将网站上传到 GitHub 来请求帮助,稍后可以将其删除,然后进行同行评审。数据库不是必需的,这肯定是竞​​争。最好阅读日志并了解它是如何被利用的。

网站被破坏并不总是服务器被破坏。如果 PHP 代码中存在愚蠢的错误,并不意味着存在被利用的内核漏洞。

总而言之,您应该在编辑器中对其进行编辑并正确检查,然后对其进行排序,最终也可以对其进行修补,然后在每次更改内容时保留备份。无法通过命令对其进行排序,而且还需要对其进行修补。这涉及像往常一样使用源代码,而不是使用 grep。

相关内容