>  기사  >  백엔드 개발  >  PHP 웹 트로이 목마 스캐너 코드 v10 보안 테스트 도구

PHP 웹 트로이 목마 스캐너 코드 v10 보안 테스트 도구

WBOY
WBOY원래의
2016-07-29 08:47:441788검색

scanner.php

코드 복사 코드는 다음과 같습니다.


/**************PHP 웹 트로이 목마 스캐너*************************/
/* [ ] 작성자: alibaba */
/* [ ] QQ: 1499281192 */
/* [ ] MSN: weeming21@hotmail.com */
/* [ ] 최초 게시: t00ls.net, 재인쇄 시 t00ls를 표시해 주세요 */
/* [ ] 버전: v1.0 */
/ * [ ] 기능: PHP 트로이 목마 검사 도구의 웹 버전 */
/* [ ] 참고: 검사한 파일이 반드시 백도어일 필요는 없습니다. */
/* 원본 파일을 직접 판단, 검토 및 비교하십시오. */
/* 스캔한 파일이 백도어인지 확실하지 않은 경우 */
/* 분석을 위해 파일을 저에게 보내주시기 바랍니다.*/
/************************************************** *****/
ob_start();
set_time_limit(0);
$username = "t00ls"; //사용목적명
$password = "t00ls"; //设置密码
$md5 = md5(md5($username).md5($password));
$version = "PHP 웹木马扫描器 v1.0";
$realpath = 실제 경로('./');
$selfpath = $_SERVER['PHP_SELF'];
$selfpath = substr($selfpath, 0, strrpos($selfpath,'/'));
define('REALPATH', str_replace('//','/',str_replace('\','/',substr($realpath, 0, strlen($realpath) - strlen($selfpath))) )));
define('MYFILE', 기본 이름(__FILE__));
define('MYPATH', str_replace('\', '/', dirname(__FILE__)).'/');
define('MYFULLPATH', str_replace('\', '/', (__FILE__)));
define('HOST', "http://".$_SERVER['HTTP_HOST']);
?>

<머리>
<?php echo $version?>

<스타일>
body{margin:0px;}
body,td{font: 12px Arial,Tahoma;line-height: 16px;}
a {color: #00f;text-꾸밈:underline;}
a:hover{색상: #f00;텍스트 장식:없음;}
.alt1 td{border-top:1px solid #fff;border-bottom:1px solid #ddd;배경:#f1f1f1;padding:5px 10px 5px 5px;}
.alt2 td{border-top:1px solid #fff;border-bottom:1px solid #ddd;배경:#f9f9f9;padding:5px 10px 5px 5px;}
.focus td{ border-top:1px solid #fff;border-bottom:1px solid #ddd;배경:#ffffaa;padding:5px 10px 5px 5px;}
.head td{border-top:1px solid #fff;border-bottom :1px 솔리드 #ddd;배경:#e9e9e9;패딩:5px 10px 5px 5px;font-weight:bold;}
.head td span{font-weight:normal;}


<본문>
if(!(isset($_COOKIE['t00ls']) && $_COOKIE['t00ls'] == $md5) && !(isset($_POST['username']) && isset($_POST['password']) && (md5(md5($_POST['username']).md5($_POST['password']))==$md5)))
{
echo '

사용 이름: 설명:
';
}
elseif(isset($_POST['사용자 이름']) && isset($_POST['비밀번호']) && (md5(md5($_POST['사용자 이름']).md5($_POST[ 'password']))==$md5))
{
setcookie("t00ls", $md5, time() 60*60*24*365,"/");
echo "登陆成功!";
header( '새로고침: 1; url='.MYFILE.'?action=scan' );
종료();
}
else
{
setcookie("t00ls", $md5, time() 60*60*24*365,"/");
$setting = getSetting();
$action = isset($_GET['action'])?$_GET['action']:"";
if($action=="logout")
{
setcookie("t00ls", "", time() - 3600);
헤더("위치: ".MYFILE);
종료();
}
if($action=="download" && isset($_GET['file']) && Trim($_GET['file'])!="")
{
$file = $_GET['파일'];
ob_clean();
if (@file_exists($file)) {
header("콘텐츠 유형: 애플리케이션/옥텟-스트림");
header("콘텐츠 처리: filename="".basename($file).""");
echo file_get_contents($file);
}
exit();
}
?>







"?>

扫描 |
정의 |
출발



if($action=="setting")
{
if(isset($_POST['btnsetting']))
{
$Ssetting = 정렬();
$Ssetting['user']=isset($_POST['checkuser'])?$_POST['checkuser']:"php | php? | phtml";
$Ssetting['all']=isset($_POST['checkall'])&&$_POST['checkall']=="on"?1:0;
$Ssetting['hta']=isset($_POST['checkhta'])&&$_POST['checkhta']=="on"?1:0;
setcookie("t00ls_s", base64_encode(serialize($Ssetting)), time() 60*60*24*365,"/");
echo "设置完成!";
header( 'refresh: 1; url='.MYFILE.'?action=setting' );
exit();
}
?>


扫描设定

















文件后缀:
>
>
 




}
else
{
$dir = isset($_POST['path'])?$_POST['path']:MYPATH;
$dir = substr($dir,-1)!="/"?$dir."/":$dir;
?>






扫描路径:

  


if(isset($_POST['btnScan']))
{
$start=mktime();
$is_user = array();
$is_ext = "";
$list = "";
if(trim($setting['user'])!="")
{
$is_user = explode("|",$setting['user']);
if(count($is_user)>0)
{
foreach($is_user as $key=>$value)
$is_user[$key]=trim(str_replace("?","(.)",$value));
$is_ext = "(\.".implode("($|\.))|(\.",$is_user)."($|\.))";
}
}
if($setting['hta']==1)
{
$is_hta=1;
$is_ext = strlen($is_ext)>0?$is_ext."|":$is_ext;
$is_ext.="(^\.htaccess$)";
}
if($setting['all']==1 || (strlen($is_ext)==0 && $setting['hta']==0))
{
$is_ext="(.+)";
}
$php_code = getCode();
if(!is_readable($dir))
$dir = MYPATH;
$count=$scanned=0;
scan($dir,$is_ext);
$end=mktime();
$spent = ($end - $start);
?>
扫描: 文件 | 发现: 可疑文件 | 耗时:











}
}
}
ob_flush();
?>


함수 스캔($path = '.',$is_ext){
전역 $php_code,$count,$scanned,$list;
$ignore = array('.', '..' );
$replace=array(" ","n","r","t");
$dh = @opendir( $path );
while(false!==($file=readdir($dh))){
if( !in_array( $file, $ignore ) ){
if( is_dir( "$path$file" ) ){
scan("$path$file/",$is_ext);
} else {
$current = $path.$file;
if(MYFULLPATH==$current) 계속;
if(!preg_match("/$is_ext/i",$file)) 계속;
if(is_readable($current))
{
$scanned ;
$c
$c
foreach($php_code as $key => $value)
{
if(preg_match("/$value/i",$content))
{
$개수 ;
$j = $count % 2 1;
$filetime = date('Y-m-d H:i:s',filemtime($current));
$reason = 폭발("->",$key);
$url = str_replace(REALPATH,HOST,$current);
preg_match("/$value/i",$content,$arr);
$list.="
$current

< td>$reason[0]
;";
//echo $key . "-" . $ 경로 . $file ."(" . $arr[0] . ")" ."
";
//echo $path . $파일 ."
";
휴식;
}
}
}
}
}
}
closedir( $dh );
}
function getSetting()
{
$Ssetting = array();
if(isset($_COOKIE['t00ls_s']))
{
$Ssetting = unserialize(base64_decode($_COOKIE['t00ls_s']));
$Ssetting['user']=isset($Ssetting['user'])?$Ssetting['user']:"php | php? | phtml | shtml";
$Ssetting['all']=isset($Ssetting['all'])?intval($Ssetting['all']):0;
$Ssetting['hta']=isset($Ssetting['hta'])?intval($Ssetting['hta']):1;
}
else
{
$Ssetting['user']="php | php? | phtml | shtml";
$Ssetting['모두']=0;
$Ssetting['hta']=1;
setcookie("t00ls_s", base64_encode(serialize($Ssetting)), time() 60*60*24*365,"/");
}
$Ssetting을 반환합니다.
}
function getCode()
{
return array(
'백도어 특성->cha88.cn'=>'cha88.cn',
'백도어 특성->c99shell' =>'c99shell',
'백도어 특성->phpspy'=>'phpspy',
'백도어 특성->스캐너'=>'스캐너',
'백도어 특성- >cmd.php'=>'cmd.php',
'백도어 기능->str_rot13'=>'str_rot13',
'백도어 기능->webshell'=>'webshell' ,
'백도어 기능->EgY_SpIdEr'=>'EgY_SpIdEr',
'백도어 기능->tools88.com'=>'tools88.com',
'백도어 기능-> SECFORCE'=>'SECFORCE',
'백도어 특성->eval("?>'=>'eval(('|")?>',
'의심스러운 코드 특성-> ;system('=>'system(',
'의심스러운 코드 특성->passthru('=>'passthru(',
'의심스러운 코드 특성->shell_exec('=>' shell_exec(',
'의심스러운 코드 특성->exec('=>'exec(',
'의심스러운 코드 특성->popen('=>'popen(',
' 의심스러운 코드 특성->proc_open'=>'proc_open',
'의심스러운 코드 특성->eval($'=>'eval(('|"|s*)\$',
'의심스러운 코드 특성->assert($'=>'assert(('|"|s*)\$',
'위험한 MYSQL 코드->문자열 soname을 반환합니다'=>'returnsstringsoname',
'위험한 MYSQL 코드->into outfile'=>'intooutfile',
'위험한 MYSQL 코드->load_file'=>'select(s )(.*)load_file',
'암호화 백도어 특성->eval(gzinflate('=>'eval(gzinflate(',
'암호화 백도어 특성->eval(base64_decode('=>'eval(base64_decode(',
) '암호화 백도어 특성->eval(gzuncompress('=>'eval(gzuncompress(',
'암호화 백도어 특성->eval(gzdecode('=>'eval(gzdecode(',
) '암호화 백도어 특성->eval(str_rot13('=>'eval(str_rot13(',
'암호화 백도어 특성->gzuncompress(base64_decode('=>'gzuncompress(base64_decode(',
) '암호화 백도어 특성->base64_decode(gzuncompress('=>'base64_decode(gzuncompress(',
'한 문장 백도어 특성->eval($_'=>'eval(('|"|s *)\$_(POST|GET|REQUEST|COOKIE)',
'한 문장 백도어 특성->assert($_'=>'assert(('|"|s*)\$_( POST|GET|REQUEST|COOKIE)',
'한 문장 백도어 특성->require($_'=>'require(('|"|s*)\$_(POST|GET|REQUEST| COOKIE)',
'한 문장 백도어 특성->require_once($_'=>'require_once(('|"|s*)\$_(POST|GET|REQUEST|COOKIE)',
'한 문장 백도어 특성->include($_'=>'include(('|"|s*)\$_(POST|GET|REQUEST|COOKIE)',
'한 문장 백도어 특성 ->include_once($_'=>'include_once(('|"|s*)\$_(POST|GET|REQUEST|COOKIE)',
'한 문장 백도어 특성->call_user_func(" 주장"'=>'call_user_func(("|')assert("|')',
'한 문장 백도어 특성->call_user_func($_'=>'call_user_func(('|"|s *)\$_(POST|GET|REQUEST|COOKIE)',
'한 문장 백도어 특성->$_POST/GET/REQUEST/COOKIE[?]($_POST/GET/REQUEST/COOKIE[?] '=>'$_(POST|GET|요청|쿠키)[([^]] )](('|"|s*)\$_(POST|GET|요청|쿠키)[',
'한 문장 백도어 특성->echo(file_get_contents($_POST/GET/REQUEST/COOKIE'=>'echo(file_get_contents(('|"|s*)\$_(POST|GET|REQUEST|COOKIE) ',
'백도어 기능 업로드->file_put_contents($_POST/GET/REQUEST/COOKIE,$_POST/GET/REQUEST/COOKIE'=>'file_put_contents(('|"|s*)\$_( POST|GET|REQUEST|COOKIE)[([^]] )],('|"|s*)\$_(POST|GET|REQUEST|COOKIE)',
'백도어 특성 업로드->fputs (fopen("?","w"),$_POST/GET/REQUEST/COOKIE['=>'fputs(fopen((. ),('|")w('|")),('| "|s*)\$_(POST|GET|REQUEST|COOKIE)[',
'.htaccess 플러그인 기능->SetHandler 애플리케이션/x-httpd-php'=>'SetHandlerapplication/x- httpd -php',
'.htaccess 플러그인 기능->php_value auto_prepend_file'=>'php_valueauto_prepend_file',
'.htaccess 플러그인 기능->php_value auto_append_file'=>'php_valueauto_append_file'
; >코드 복사

코드는 다음과 같습니다.


기능 코드:
백도어 기능->cha88.cn
백도어 기능->c99shell
백도어 기능->phpspy
백도어 기능->스캐너
백도어 기능->cmd.php
백도어 기능->str_rot13
백도어 기능->webshell
백도어 기능->EgY_SpIdEr
백도어 기능->tools88.com
백도어 기능->SECFORCE
백도어 기능->eval("?>
의심스러운 코드 기능->system(
의심스러운 코드 기능->passthru(
의심스러운 코드 기능-> shell_exec(
의심스러운 코드 특성->exec(
의심스러운 코드 특성->popen(
의심스러운 코드 특성->proc_open
의심스러운 코드 특성->eval($
의심스러운 코드 기능->assert($
위험한 MYSQL 코드->문자열 soname을 반환합니다.
위험한 MYSQL 코드->외부 파일로
위험한 MYSQL 코드->load_file
암호화 백도어 기능-> eval(gzinflate(
암호화 백도어 특성->eval(base64_decode(
암호화 백도어 특성->eval(gzuncompress(
암호화 백도어 특성->gzuncompress(base64_decode(
암호화 백도어 특성-) >base64_decode(gzuncompress(
한 문장 백도어 특성->eval($_
한 문장 백도어 특성->assert($_
한 문장 백도어 특성->require($_
한 문장 백도어 특징->require_once($_
한 문장 백도어 특징->include($_
한 문장 백도어 특징->include_once($_
한 문장 백도어 특징-> call_user_func("assert"
한 문장 백도어 특성->call_user_func($_
한 문장 백도어 특징->$_POST/GET/REQUEST/COOKIE[?]($_POST/GET/REQUEST/COOKIE[ ?]
한 문장의 백도어 특성->echo(file_get_contents($_POST/GET/REQUEST/COOKIE
백도어 특성 업로드->file_put_contents($_POST/GET/REQUEST/COOKIE,$_POST/GET/REQUEST /COOKIE
백도어 기능 업로드->fputs(fopen("?","w"),$_POST/GET/REQUEST/COOKIE[
.htaccess 플러그인 기능->SetHandler 애플리케이션/x- httpd -php
.htaccess 말 삽입 기능->php_value auto_prepend_file
.htaccess 말 삽입 기능->php_value auto_append_file


게으른 디자인, phpspy 스타일 직접 적용
참고: 스캔 나오는 파일이 반드시 백도어는 아닙니다. 원본 파일을 직접 판단, 검토, 비교하시기 바랍니다.

위 내용은 PHP 웹 트로이 스캐너 코드 v10 보안 테스트 도구를 소개하며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
아니요 文件 更新时间 원래>
特征 动작품
$filetime $reason[1]< ;/td>
下载