php木马扫描 linux,php木马webshell扫描器代码

/*

+--------------------------------------------------------------------------+

| Codz by indexphp Version:0.01 |

| (c) 2009 indexphp |

| http://www.indexphp.org |

+--------------------------------------------------------------------------+

*/

/*===================== 程序配置 =====================*/

$dir=‘cms‘; //设置要扫描的目录

$jumpoff=false;//设置要跳过检查的文件

$jump=‘safe.php|g‘; //设置要跳过检查的文件或者文件夹 $jumpoff=false 时此设置有效

$danger=‘eval|cmd|passthru‘;//设置要查找的危险的函数 以确定是否木马文件

$suffix=‘php|inc‘;//设置要扫描文件的后缀

$dir_num=0;

$file_num=0;

$danger_num=0;

/*===================== 配置结束 =====================*/

extract (GetHttpVars());

if ($m=="edit") Edit();

if ($m=="del") Delete();

if ($check==‘check‘)

{ $safearr = explode("|",$jump);

$start_time=microtime(true);

safe_check($dir);

$end_time=microtime(true);

$total=$end_time-$start_time;

$file_num=$file_num-$dir_num;

$message= " 文件数:".$file_num;

$message.= " 文件夹数:".$dir_num;

$message.= " 可疑文件数:".$danger_num;

$message.= " 执行时间:".$total;

echo $message;

exit();

}

function GetHttpVars() {//全局变量

$superglobs = array(

‘_POST‘,

‘_GET‘,

‘HTTP_POST_VARS‘,

‘HTTP_GET_VARS‘);

$httpvars = array();

foreach ($superglobs as $glob) {

global $$glob;

if (isset($$glob) && is_array($$glob)) {

$httpvars = $$glob;

}

if (count($httpvars) > 0)

break;

}

return $httpvars;

}

function Safe_Check($dir)//遍历文件

{

global $danger ,$suffix ,$dir_num ,$file_num ,$danger_num;

[email protected]($dir) or die(‘文件夹不存在‘) ;

while ($file=$hand->read() )

{

$filename=$dir.‘/‘.$file;

if (!$jumpoff) {

if(Jump($filename))continue;

}

if(@is_dir($filename) && $file != ‘.‘ && $file!= ‘..‘&& $file!=‘./..‘)

{ $dir_num++;

Safe_Check($filename);

}

if (preg_match_all ("/\.($suffix)/i",$filename,$out))

{

$str=‘‘;

$fp = @fopen($filename,‘r‘)or die(‘没有权限‘);

while(!feof($fp))

{

$str .= fgets($fp,1024);

}

fclose($fp);

if( preg_match_all ("/($danger)[ \r\n\t]{0,}([\[\(])/i",$str,$out))

{

echo "可疑文件:{$filename}

查看代码

删除
";

$danger_num++;

}

}

$file_num++;

}

}

function Edit()//查看可疑文件

{

global $filename;

$filename = str_replace("..","",$filename);

$file = $filename;

$content = "";

if(is_file($file))

{

$fp = fopen($file,"r")or die(‘没有权限‘);

$content = fread($fp,filesize($file));

fclose($fp);

$content = htmlspecialchars($content);

}

echo "$content\r\n";

exit();

}

function Delete()//删除文件

{

global $filename;

(is_file($filename))?($mes=unlink($filename)?‘删除成功‘:‘删除失败 查看权限‘):‘‘;

echo $mes;

exit();

}

function Jump($file)//跳过文件

{

global $jump,$safearr;

if($jump != ‘‘)

{

foreach($safearr as $v)

{

if($v==‘‘) continue;

if( eregi($v,$file) ) return true ;

}

}

return false;

}

?>

原文:http://www.jb51.net/article/29543.htm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
扫描木马类型: asp/aspx/php/jsp/asa/cer 软件主要功能: 1.搜索网站里面的网页木马Webshell) 2.生成统计报表 用来查询网站是不是被挂马了,一般用于服务器上的操作,或将服务器上的源码下载到本地,然后用此软件查找。 处理了一下第一版大家的要求,修复了一些小的bug,加入了自动更新程序,在windows2003、windows xp、windows 2000 server 无.net环境下测试通过,简单的更新说明如下: 1.添加自动升级模块,.net环境下可完成在线升级; -------------------------------------------------------- 升级需要请求服务器下载文件替换,如果下载失败,请手动下载更新。更新程序需要服务器装有.net v2.0.50727 版本以上的环境才能运行,因此不支持.net的服务器无法使用自动更新。 2.无需.net环境运行扫描程序; -------------------------------------------------------- 这个问题比较头疼的,程序是.NET 开发的,需要安装 .NET Framework,但Windows 2000、Windows XP 和 Windows 2003 默认都没有.NET 2.0 运行环境。于是利用移动飞信的原理,利用fetion的程序加载主程序,可以使主程序可以运行在不支持.net的环境下。大家可以用VMDotNet包中的文件运行大多数.net开发的程序,如果缺少dll,加上即可。 3.添加asp规则,主要针对asp的webshell绕过机制; -------------------------------------------------------- 由于本来的规则基本是lake2的规则以及少许修改版,于是很多同志找出了很多绕过逃避检测的机制,比如用access或者excel创建asp文件的小马,比如include包含gif之类的伎俩等等等等。本版中这些绕过机制均得到处理。(还想绕过的朋友try一下看看我的正则健壮不健壮) 4.更新php规则,添加了eval下运行的少数加密函数; -------------------------------------------------------- php下把加密的文件先通过函数解密再eval运行,本次版本处理了几个不常见的函数:gzinflate 、str_rot13等等;php确实还有很多绕过的方法,而且很难检测,呜呼哀哉,我也没辙了... 5.增加了利用IIS6.0文件夹解析漏洞以及文件解析漏洞隐藏的shell的检查; -------------------------------------------------------- 这个没啥好说的,目录叫1.asp或者文件叫1.asp;2.jpg,很显然被人入侵了,需要仔细检查检查问题了。 6.修复一处bug(驱动器下第一层目录无法扫描); -------------------------------------------------------- 测试的时候无意中发现的,貌似还没有人向我提交这个问题,估计大家都直接扫目录的,并没有扫盘(确实没必要扫盘~) 

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值