>  기사  >  백엔드 개발  >  webshell 트랜잭션 PHP 트로이 목마 webshell 스캐너 코드

webshell 트랜잭션 PHP 트로이 목마 webshell 스캐너 코드

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

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


/*
------ --- ---------------------------------- --- ---------------
| Codz by indexphp 버전:0.01
(c) 2009 indexphp
| .org
------------------------------- --- ----------------
*/
/*======== ====== ======== 프로그램 구성====================*/
$dir='cms' / /검사할 디렉터리를 설정합니다.
$jumpoff=false; //검사를 건너뛸 파일을 설정합니다.
$jump='safe.php|g' //검사를 건너뛸 파일이나 폴더를 설정합니다. $jumpoff=false 유효
$danger='eval|cmd|passthru';//트로이목마 파일인지 판단하기 위해 위험한 함수를 찾아내도록 설정
$suffix='php|inc';// 검사할 파일의 접미사 설정
$file_num=0;
$danger_num=0
/*========== ========= 구성 끝 ====================*/
extract (GetHttpVars())
if ($ m=="편집") 편집() ;
if ($m=="del") 삭제()
if ($check=='check')
{ $safearr = 폭발() "|",$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.= "의심스러운 파일 수:".$risk_num;
$message.= " 실행 시간: ".$total;
echo $message;
}
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 ($dir)//파일 탐색
{
global $danger ,$suffix ,$dir_num ,$file_num ,$danger_num
$hand=@dir($dir) 또는 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) [rnt]{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")또는 die('권한 없음');
$content = fread($fp,filesize($file));
fclose($fp);
$content = htmlspecialchars($content) ;
}
echo "< textarea name='str'>$contentrn"
exit()
}
function 삭제()//삭제 file
{
global $filename;
(is_file($filename))?($mes=unlink($filename)?'삭제 성공':'삭제 실패 보기 권한'):''; 🎜>echo $mes;
exit() ;
}
function Jump($file)//skip file
{
global $jump,$safearr
if($ 점프 != '')
{
foreach($safearr as $v)
{
if($v=='') continue
if( eregi($v,$ 파일) ) true
}
}
return false
}
?>

"submit" value="탐지 시작" />


위 내용은 웹쉘 트랜잭션 내용을 포함하여 웹쉘 트랜잭션 PHP 트로이 목마 스캐너 코드를 소개한 내용이 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.