Linux · 2011-11-11

wordpress被插入代码$wp_salt = array的解决办法

近日笔者所管理的Linux服务器上的大量php文件,均被插入类似以下的代码:

$md5 = "a5d67011f6466a82320bc9bcbcaab8c5";
$wp_salt = array("n",'(','o',"l","d",'c','r','e','f',"v","$","_",';','g',"z","b",'t','6',")","s",'i','4','a');
$wp_add_filter = 
····很长的加密代码····
#估计就是这个被Google列入危险范围了 - -

这里这里
这漏洞很明显是由Wordpress的无验证递交参数引起的,修复的方法,上述地址已经给出一个PHP的脚本,直接运行即可修复,或者懂得正则的朋友自己写个shell或perl跑一下很快就能清除干净。

写了个shell的多进程清理脚本,可怜的shell几乎都忘光了 – –

#!/bin/bash
#此脚本的作用为同时开10个进程进行清理工作。
PP=$$.info
        mkfifo $PP
        exec 10<>$PP
rm -f $PP
                { echo;echo;echo;echo;echo;echo;echo;echo;echo;echo; } >&10
        for i in $(ls -1 /home)
                do
        read
                ( cp /home/cleaner-cli.php /home/$i; cd /home/$i;php /home/$i/cleaner-cli.php; echo >&10 ) &
        done <&10
wait

这是一篇关于shell的I/O重定向 不得不看的文章
PS:文件数量如果很大,Perl的正则如果写好的话,能比shell的“多进程”节省不少时间。