齐博CMS:木马克星之《木马扫描及清除工具》

这个工具,有查询功能,也有批量清除功能。
可以按指定目录查询或批处理
可以查询不同的文件类型,也可以查找指定的文件。
对于指定的附件目录,你可以查询是否存在.php文件.附件目录存在PHP文件是不安全的。

保存下面代码为php文件,修改里边的默认密码123,然后传到整站根目录即可,在地址栏访问。

木马描扫方法:

选择:查找文件中的内容

扫描目录 .号代表默认是整站目录。

文件类型:一般是查找.php

文件中的内容:一般是eval_r(这是PHP木马最常见的必用的函数。当然整站也用到。

好了,开始查找扫描。

最后,查出来的文件会列出来,也可以下载检查对比。
查找eval_r(的话。同时也会把系统的一些正常文件查出来。这个时候。如果你不懂的话。
最傻瓜式的方法。就是把他们都删除。然后对应的从新程序里复制对应的文件替换回去。这样做。其一,有效的清除了可能多余的木马文件。其二。有效的替换了可能被修改过的文件。
删除前。请复制页面。以知道哪些文件需要替换回去。

清除木马后。就需要清除被修改过的文件了。

这个时候。只能手工查看一下FTP。哪些文件被修改过。被批量的添加了什么代码。

然后使用本工具的:替换文件中的内容

最后一项留空,即可替换文件内容。

当然这个工具,除了处理木马之外。还可以用到平时的批处理文件方面。

你的网站程序被恶意修改后,打不开了.那么这个工具也不一定能打开.此时.你需要重新上传整站的以下两个文件,因为有可能这两个文件被恶意修改坏了
/inc/function.inc.php
/inc/mysql_class.php
这两个文件

另外查看一下数据库配置文件
php168/mysql_config.php
是否被修改过.如被修改的话.改回来即可.就可以保证此工具能正常运行

一般木马注入都是eval函数.
通过以下的方法修改,你可以彻底的屏蔽掉这个函数.

修改文件
/inc/common.inc.php

查找
$array[$key]=addslashes($value);
在他上面一行添加如下代码即可
$value=preg_replace("/eval/i","eva l",$value);
适用于齐博CMS所有版本

PHP文件代码

<?php
error_reporting(0);
header('Content-Type: text/html; charset=gb2312');

$password='123';//密码

if(!ini_get('register_globals')){
@extract($_COOKIE,EXTR_SKIP);
@extract($_FILES,EXTR_SKIP);
@extract($_GET,EXTR_SKIP);
@extract($_POST,EXTR_SKIP);
}

$path=dirname(__FILE__).'/';
require_once($path.'inc/function.inc.php');
if(!is_file($path."data/mysql_config.php")&&!is_file($path."php168/mysql_config.php")){
die("data/mysql_config.php文件不存在!");
}
@include($path."data/mysql_config.php");
@include($path."php168/mysql_config.php");

require_once($path.'inc/mysql_class.php');

$db=new MYSQL_DB;

if($_COOKIE[pwd]!=$password&&$_POST[pwd]!=$password){
print<<<EOT
<form name="form1" method="post"action="">
<divalign="center">密码
<input type="text" name="pwd">
<input type="submit" name="Submit"value="提交">
</div>
</form>
EOT;
exit;
}elseif($_POST[pwd]){
setcookie('pwd',$_POST[pwd]);
}

if(!$job){
print<<<EOT
<html>
<head>
<title>齐博文件查找与批量替换工具</title>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312">
</head>

<body bgcolor="#FFFFFF"text="#000000">
<form name="form1" method="post"action="">
<p>
<input type="radio" name="type" value="1" checkedonclick="choosef(1)">
查找文件
<input type="radio" name="type" value="2"onclick="choosef(2)">
查找文件中的内容
<input type="radio" name="type" value="3"onclick="choosef(3)">
替换文件中的内容<br>
扫描目录:
<input type="text" name="dir"value=".">
</p>
<p> 文件类型:
<input type="text" name="filetype"value=".php">
如.php|.asp多个用|隔开<br>
<div id="c2">
文件中的内容:
<textarea name="oldcode" cols="75"rows="5"></textarea>
<br></div>
<div id="c3">
被替换的内容:
<textarea name="newcode" cols="75"rows="5"></textarea>
留空,则代表清除原内容</div>
<p>
<input type="submit" name="Submit"value="开始">
<input type="hidden" name="job"value="getfile">
</p><SCRIPTLANGUAGE="JavaScript">
<!--
function choosef(t){
document.getElementByIdx_x_x("c2").style.display='none';
document.getElementByIdx_x_x("c3").style.display='none';
if(t==2)document.getElementByIdx_x_x("c2").style.display='';
if(t==3){document.getElementByIdx_x_x("c2").style.display=document.getElementByIdx_x_x("c3").style.display='';}
}
choosef(1);
//-->
</SCRIPT>
</form>
</body>
</html>
EOT;
exit;
}elseif($job=="getfile"){
if(!$filetype){
die("请输入文件类型");
}
$fup=intval($fup);
if(!$fup){
if($type>1&&!$oldcode){
die("被查找的内容不能为空!");
}
unlink(dirname(__FILE__)."/oldcode.txt");
unlink(dirname(__FILE__)."/newcode.txt");
$oldcode&&write_file(dirname(__FILE__)."/oldcode.txt",stripslashes($oldcode));
$newcode&&write_file(dirname(__FILE__)."/newcode.txt",stripslashes($newcode));
if($dir){
$dir=dirname(__FILE__)."/$dir";
}else{
$dir=dirname(__FILE__)."/";
}
$db->query("DROPTABLE IF EXISTS `{$pre}cachefile`");
$db->query("CREATETABLE `{$pre}cachefile` (
`fid` int(7) NOT NULL auto_increment,
`fup` int(7) NOT NULL default '0',
`name` varchar(100) NOT NULL default '',
`type` tinyint(1) NOT NULL default '0',
`ck` tinyint(1) NOT NULL default '0',
`content` text NOT NULL,
PRIMARY KEY (`fid`)
)TYPE=MyISAM AUTO_INCREMENT=1");
}else{
$oldcode=read_file("oldcode.txt");
$newcode=read_file("newcode.txt");
}

齐博CMS:木马克星之《木马扫描及清除工具》
$hand=opendir($dir);
while (($file = readdir($hand))!=''){
if(strstr($file,'cache')){
continue;
}
if($file!='.'&&$file!='html'&&$file!='..'&&is_dir("$dir/$file")){
$db->query("INSERTINTO `{$pre}cachefile` (`fup` , `name` , `type` , `content` )VALUES('$fup', '$dir/$file', 1 ,'')");
}
elseif(eregi("({$filetype})$",$file)){
$write=0;
$show='';
if($type>1&&$oldcode){
$content=read_file("$dir/$file");
if(strstr($content,$oldcode)){
$detail=explode($oldcode,$content);
for($i=1;$i<count($detail);$i++ ){
$show.=$oldcode.substr($detail[$i],0,20)."";
}
$write=1;
if($type==3){
$content=str_replace($oldcode,$newcode,$content);
write_file("$dir/$file",$content);
}
}
}
if($write||$type==1){
$show=addslashes($show);
$db->query("INSERTINTO `{$pre}cachefile` (`fup` , `name` , `type` ,`content` )VALUES ( '$fup', '$dir/$file', 0 , '$show')");
}
}
}
getfup($fup);
}
elseif($job=="down"){

$filetype='.php';
$filename=basename($file);
ob_end_clean();
header('Last-Modified: '.gmdate('D, d M YH:i:s',time()).' GMT');
header('Pragma: no-cache');
header('Content-Encoding: none');
header('Content-Disposition: attachment;filename='.$filename);
header('Content-type: '.$filetype);
header('Content-Length: '.filesize($file));
readfile($file);

}

function getfup($fup){
global $db,$pre,$job,$type,$filetype;
$fup=intval($fup);
$rs=$db->get_one("SELECT * FROM`{$pre}cachefile` WHERE type=1 AND fup='$fup' AND ck=0 ORDER BY fidASC LIMIT 1");
if($rs[name]!=''){
$db->query("UPDATE`{$pre}cachefile` SET ck=1 WHERE fid=$rs[fid]");
echo "<METAHTTP-EQUIV=REFRESHCONTENT='0;URL=?job=$job&filetype=$filetype&type=$type&dir=$rs[name]&fup=$rs[fid]'>请稍候...<br>fup=$rs[fid]<br>dir=$rs[name]";
exit;
}elseif($fup){
$r=$db->get_one("SELECTfup FROM `{$pre}cachefile` WHERE fid='$fup'");
getfup($r[fup]);
}else{
$NUM=0;
$query =$db->query("SELECT * FROM {$pre}cachefile WHEREtype=0");
while($rs =$db->fetch_array($query)){
$NUM++;
$code=$rs[content]?"<inputonmouseover='this.width=500' type=''value='".str_replace("'","&#39;",$rs[content])."'>":"";
$show.="$rs[name]<AHREF='?job=down&file={$rs[name]}'>下载</A>$code<br>";
}
die("<AHREF=?>执行完毕,点击返回!</A><br>扫描出来的文件共有{$NUM}个<hr>$show");
}
}

?>

PHP代码版本2,速度更快,部分服务器不支持

<?php
error_reporting(0);
header('Content-Type: text/html; charset=gb2312');
set_time_limit(0);

$password='123bcd';//密码

if(!ini_get('register_globals')){
@extract($_COOKIE,EXTR_SKIP);
@extract($_FILES,EXTR_SKIP);
@extract($_GET,EXTR_SKIP);
@extract($_POST,EXTR_SKIP);
}

if($_COOKIE[pwd]!=$password&&$_POST[pwd]!=$password){
print<<<EOT
<form name="form1" method="post"action="">
<divalign="center">密码
<inputtype="text" name="pwd">
<inputtype="submit" name="Submit" value="提交">
</div>
</form>
EOT;
exit;
}elseif($_POST[pwd]){
setcookie('pwd',$_POST[pwd]);
}


if(!$job){
print<<<EOT
<html>
<head>
<title>齐博文件处理工具</title>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312">
</head>

<body bgcolor="#FFFFFF"text="#000000">
<form name="form1" method="post"action="">
<p>
<input type="radio" name="type" value="2"onclick="choosef(2)" checked>
查找文件中的内容
<input type="radio" name="type" value="3"onclick="choosef(3)">
替换文件中的内容
<input type="radio" name="type" value="1"onClick="choosef(1)">
查找文件<br>
扫描目录:
<input type="text" name="dir"value=".">
“.”代表根目录也即当前目录,如果是具体的目录,多个可用“|”隔开<br>
要排除的目录:
<input type="text" name="nodir"value="">
一般留空即可,多个可用“|”隔开</p>
<p> 文件类型:
<input type="text" name="filetype"value=".php">
如.php|.asp多个用|隔开,但是结尾不能有|<br>
<div id="c2">
文件中的内容:
<textarea name="oldcode" cols="75"rows="5">eval_r(</textarea>多个内容用“|||”隔开
<br></div>
<div id="c3">
被替换的内容:
<textarea name="newcode" cols="75"rows="5"></textarea>
留空,则代表清除原内容</div>
<p>
<input type="submit" name="Submit"value="点击开始">文件多的话,会比较慢,请耐心等待
<input type="hidden" name="job"value="getfile">
</p><SCRIPTLANGUAGE="JavaScript">
<!--
function choosef(t){
document.getElementByIdx_x_x("c2").style.display='none';
document.getElementByIdx_x_x("c3").style.display='none';
if(t==2)document.getElementByIdx_x_x("c2").style.display='';
if(t==3){document.getElementByIdx_x_x("c2").style.display=document.getElementByIdx_x_x("c3").style.display='';}
}
choosef(2);
//-->
</SCRIPT>
</form>
</body>
</html>
EOT;
exit;

}elseif($job=="getfile"){

if(!$page){
if(!$filetype){
die("请输入文件类型");
}
if($type>1&&!$oldcode){
die("被查找的内容不能为空!");
}
write_file("oldcode.txt",stripslashes($oldcode));
write_file("newcode.txt",stripslashes($newcode));
$dir || $dir=".";

$file_array='';

$detail=explode('|',$dir);
$detail2=explode('|',$nodir);
if(strstr($dir,'|')){
foreach($detailAS $value){
list_all_file($value,$filetype);
}
}elseif($dir=='.'&&$nodir){
$_DIR=opendir($dir);
while(($file=readdir($_DIR))!=false){
if($file!='.'&&$file!='..'&&!in_array($file,$detail2)){
list_all_file($file,$filetype);
}
}
}else{
list_all_file($dir,$filetype);
}


$str=var_export($file_array,true);
write_file("array.txt","<?phprnreturn $str;rn?>");
unlink('end.txt');

if($type==1){
echo"<META HTTP-EQUIV=REFRESHCONTENT='0;URL=?job=show&type=1'>";
exit;
}

}else{
$oldcode=read_file("oldcode.txt");
$newcode=read_file("newcode.txt");
$file_array=include("array.txt");
}

if(!$page){
$page=0;
}

do{
$ckk = 0;
$filecode=read_file($file_array[$page]);


$detai=explode('|||',$oldcode);
foreach($detai AS$value){
if($value&&strstr($filecode,$value)){
$ckk++;
}
}

if($type==3&&$ckk){
$newfilecode= $filecode;
$detai=explode('|||',$oldcode);
foreach($detaiAS $value){
$value&& $newfilecode =str_replace($value,$newcode,$newfilecode);
}
write_file($file_array[$page],$newfilecode);
}
if($ckk){
$show.="{$file_array[$page]}|www-qibosoft-net|";

$detai=explode('|||',$oldcode);
foreach($detaiAS $value){
if($value){
$dd=explode($value,$filecode);
for($i=1;$i<count($dd);$i++ ){
$show.=$value.substr($dd[$i],0,20)."";
}
}
}
$show.="|www-qibosoft-com|";
}

$ifdo=true;
$page++;
$i++;
if($i>100||!$file_array[$page]||$page==1){
$ifdo=false;
}
}while($ifdo);
write_file('end.txt',$show,'a');

if(!$file_array[$page]){
echo "<METAHTTP-EQUIV=REFRESHCONTENT='0;URL=?job=show&type=$type'>执行完毕,";
exit;
}else{
echo"请稍候正在处理中$page<META HTTP-EQUIV=REFRESHCONTENT='0;URL=?job=$job&page=$page&type=$type'>";
exit;
}

}elseif($job=="show"){

if($type==1){
$file_array=include("array.txt");
foreach($file_array AS$key=>$file){
$i++;
$show.="<AHREF='?job=down&file={$file}'>下载</A><A target='_blank'HREF='?job=view&file={$file}'>查看</A>$file<br>";
}
}else{
$array=explode('|www-qibosoft-com|',read_file('end.txt'));
foreach($array AS$key=>$value){
if(!$value){
continue;
}
$i++;
list($file,$code)=explode('|www-qibosoft-net|',$value);
if($key==0&&strstr($file,basename(__FILE__))){
continue;
}
$show.="<inputonmouseover='this.width=500' type=''value='".str_replace("'","&#39;",$code)."'>";
$show.="<AHREF='?job=down&file={$file}'>下载</A><A target='_blank'HREF='?job=view&file={$file}'>查看</A>$file<br>";
}
}
if($show){
echo "<ahref='?'>共找出 $i个文件,点击返回</a><hr>";
echo $show;
}else{
echo "<ahref='?'>共找出 $i个文件,点击返回</a><hr>";
echo '<ahref="?">没有查到相关文件,点击返回</a>';
}

unlink('newcode.txt');unlink('oldcode.txt');unlink('array.txt');unlink('end.txt');


}elseif($job=="down"){

$filetype='.php';
$filename=basename($file);
ob_end_clean();
header('Last-Modified: '.gmdate('D, d M YH:i:s',time()).' GMT');
header('Pragma: no-cache');
header('Content-Encoding: none');
header('Content-Disposition: attachment;filename='.$filename);
header('Content-type: '.$filetype);
header('Content-Length: '.filesize($file));
readfile($file);

}elseif($job=="view"){
echo '<textarea name="textfield">'.str_replace(array('<','>'),array('&lt;','&gt;'),read_file($file)).'</textarea>';
}


function list_all_file($path,$filetype){
global $file_array;
if(is_dir($path)){
$dir=opendir($path);
while(($file=readdir($dir))!=false){
if(is_file("$path/$file")){
eregi("(".$filetype.")$",$file)&&$file_array[]="$path/$file";
}elseif($file!='.'&&$file!='..'){
list_all_file("$path/$file",$filetype);
}
}
closedir($dir);
}elseif(is_file($path)&&eregi("(".$filetype.")$",$path)){
$file_array[]=$path;
}
}


function read_file($filename,$method="rb"){
if($handle=@fopen($filename,$method)){
@flock($handle,LOCK_SH);
$filedata=@fread($handle,@filesize($filename));
@fclose($handle);
}
return $filedata;
}

functionwrite_file($filename,$data,$method="rb+",$iflock=1){
@touch($filename);
$handle=@fopen($filename,$method);
if($iflock){
@flock($handle,LOCK_EX);
}
@fputs($handle,$data);
if($method=="rb+")@ftruncate($handle,strlen($data));
@fclose($handle);
@chmod($filename,0777);
if( is_writable($filename) ){
return 1;
}else{
return 0;
}
}

?>




  

爱华网本文地址 » http://www.413yy.cn/a/25101010/32450.html

更多阅读

恒殊:天鹅系列之《天鹅·光源》6月1日全国上市

最世文化 年度重磅推荐重塑经典 颠覆想象——恒殊SWAN系列之《天鹅·光源》2011年6月1日全国上市1我是魔鬼的女儿,我叫奥黛尔。黑夜赋予了我美丽,我在午夜的时刻苏醒,仰起头,两颗星星落在我的眼睛里。第一朵夜的玫瑰吸收月华造就我

论《飒漫画》之《撞上天敌二次方》 飒漫画爱之塔罗牌

端木千凝    端木千凝姓名:端木千凝(前世名:长亭) 年龄:15岁 星座:金牛座初登场:《撞上天敌2次方》第一集《奇怪的她》 就读学校:嘉树学园 同桌:程翦星 简介:圣女长亭的转世,神秘蒙面少女,拥有强大深不可测的法力,肩负圣女的沉重职责

百家讲坛之《一代女皇武则天》 百家讲坛武则天6

百家讲坛之《一代女皇武则天》一、武则天的出身  武则天,属猴,山西文水人(先后嫁了两个皇帝唐太宗和唐高宗,两人是父子关系,生了两个皇帝:唐中宗和唐睿宗)。武氏为唐开国功臣武士彠(一生结过两次婚,与第一任夫人相里夫人生两个儿子武元庆

经典非主流动漫之——《巷说百物语》 巷说百物语 动漫

尘埃落定,当最后一曲终罢,毫无下课铃声带出的快感,只觉心绪慢了一大拍,滞塞于夸张变型的画面和凝重凄绝的剧情之中,无法自纾,《巷说百物语》视同一个陷阱,除了沉沦去自有的一片景物,观者之心亦随之缺失,几句抒写,指望多少回填些许。巷说百物语

声明:《齐博CMS:木马克星之《木马扫描及清除工具》》为网友丶红唇帝国分享!如侵犯到您的合法权益请联系我们删除