2

我的网站已被入侵。有人在我的网站中注入了一些 iframe 标记。

他们是怎么做到的?仅在我的 index.html、index.php 页面上。但是我已经阻止了这个页面的写入权限,那么他们如何能够在我的页面中写入。

它会影响我服务器上的其他页面吗?

有没有其他解决方案来阻止这个?

谢谢

<?php` 
include_once("commonfiles/user_functions.php");
include_once("user_redirect.php"); 
include_once("designs/index.html");
?>

<iframe src='url' width='1' height='1' style='visibility: hidden;'></iframe>

<iframe>这是我在 php 脚本之后注入的index.php 代码。

4

4 回答 4

2

对您的站点具有 FTP 访问权限的人(您或您的开发人员)在他们的工作站上感染了病毒。该病毒安装了一个键盘记录器,它从您的 FTP 客户端窃取凭据并将此信息发送回黑客。

黑客收集数百个此类凭据,然后使用程序登录每个服务器,下载文件,修改它以附加 iframe 或混淆的 JavaScript 或 PHP 块,上传文件,下载下一个文件,修改,上传,下一个等。下载的文件可以匹配一组名称(例如仅 index. 、 default.、 home.* 等),也可以匹配任何 html 或 PHP 文件。

附加的代码通常是可见的 iframe:隐藏或 1x1px 大小,在可疑域上获取远程 JavaScript 文件的 <script>,被一些聪明的 str.CharCode'ing 混淆的 Javascript 集合,或块base64_encode'd eval()'d 代码。不混淆代码,结果通常是一个 iframe。最近,一些聪明的攻击者正在插入远程 shell,授予他们对您服务器的后门访问权限。

一旦所有文件都被修改,攻击者就会注销。您网站的访问者将受到来自 iframe 中链接的域的恶意代码的影响,这些恶意代码旨在安装病毒和 rootkit。除其他功能外,这些病毒还会安装键盘记录器来嗅探 FTP 凭据……并且病毒会继续传播。

攻击者正在使用您的凭据,因此他们只能访问您有权访问的文件。有时,他们会在某些带有编码外壳的目录中上传一个附加文件,允许他们返回对服务器的访问(常见的是 /forums 目录中的 _captcha.php 和 /gallery 目录中的 img.php 或 gifimg.php)。如果您在您的服务器上托管其他域,只要受影响域的用户在其当前域之外没有访问权限,其他人就不会受到影响。

有两种方法可以阻止这种攻击——预防和适当的防病毒。通过使用防火墙并将 FTP 访问限制为仅几个选定的 IP,可以轻松地转移攻击。攻击者不是从您自己的工作站(还)进行攻击,而是从世界其他地方的服务器进行攻击。在所有可以访问您的 FTP 帐户的工作站上使用适当的防病毒软件——或者更好的是,不使用 Windows XP——将有助于防止发生原始感染。

如果你被感染了,使用一些聪明的 sed 很容易清理混乱,这取决于你在发现注射和制作有效正则表达式方面的能力。否则,备份备份备份 - 总是有备份!...哦,更改您的 FTP 密码,否则他们明天会回来。

于 2009-11-15T17:24:16.620 回答
1

如果 php 文件本身已被编辑以包含此 iframe,并且如果您正在运行的另一个脚本确实无法写入该文件,那么有权访问该文件的用户帐户可能已被盗用。如果有一个用户帐户可以访问具有弱密码的文件,这将是我最有可能的罪魁祸首。

他们可能在您的网站上使用了某种形式的注入来获取用户名和密码哈希并暴力破解它们,他们可能已经在有权访问的某人的机器上安装了键盘记录器,或者他们可能只是暴力强制您直接登录(假设您没有有某种机制来防止这种情况发生)。

我要做的第一件事是确保任何有权访问该机器的计算机上没有病毒运行。然后着手更改密码。最后查看站点的 php 脚本以查找可能的注入点。问题点几乎存在于您在接受某种用户输入并对其进行处理的任何地方,而无需先检查以确保处理它是安全的(即未能从用户登录表单中删除危险字符)。

于 2009-11-06T05:28:56.403 回答
1

从迄今为止发布的评论来看,几乎可以肯定有人已经获得了对已注入代码的文件具有写入权限的用户帐户的访问权限。听起来有些人发现了一个或多个帐户密码,并将偶尔登录您的 FTP 并进行一些更改作为消遣。您是否尝试过更改密码?我建议使用相当安全的密码,至少 15 个字符,并使用各种字符类型,包括不可打印的字符(如果可以的话)(使用 alt/meta 键在数字键盘上输入 UTF 代码点)。

如果在更改密码后,您仍然发现同样的问题,那么可能是另一个问题。我会首先认真检查您的 PHP 脚本。您的脚本在任何地方接受来自表单的用户输入、存储在 cookie 中的数据或来自脚本本身外部的其他数据(因此可能是“脏”数据),请非常仔细地使用这些数据检查脚本的操作。如果您使用任何此类潜在的脏数据来运行操作系统命令、打开/读取/写入文件或查询数据库,则数据可能包含转义字符,这些字符将转义您的代码,从而允许攻击者执行任何他们希望在您的脚本中的代码。

密切关注您的访问日志。您提到您从脚本中删除了注入的 iframe 代码,并且它一直被重新注入,因此如果您能在它发生时捕捉到,您可能会在访问日志中找到有关更改来源的线索。

于 2009-11-06T13:58:06.903 回答
1

有关尝试阻止 iframe的更多信息,请参阅此线程。

于 2009-11-11T16:55:44.753 回答