>백엔드 개발 >PHP 튜토리얼 >트로이목마로 인해 PHP 웹사이트가 정지된 후 복구 방법 요약_php 팁

트로이목마로 인해 PHP 웹사이트가 정지된 후 복구 방법 요약_php 팁

WBOY
WBOY원래의
2016-05-16 20:32:381225검색

이 기사의 예는 PHP 웹사이트가 트로이 목마로 인해 중단된 후 복구 방법을 요약합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 방법은 다음과 같습니다.

Linux에서는 명령을 사용하여 트로이 목마 파일을 검색할 수 있습니다. 코드 설치 디렉터리로 이동하여 다음 명령을 실행합니다

코드 복사 코드는 다음과 같습니다.
find ./ -iname "*.php" | -n " eval(base64_decode"

거의 100개의 결과가 발견되었습니다. 이 결과 목록은 매우 중요합니다. 파일을 하나씩 열어서 트로이 목마인지 확인해야 합니다.
마지막으로 10개의 트로이 목마 파일이 발견되었으며 다양한 디렉터리에 저장되어 있었으며 모두 완전한 기능을 갖춘 PHP 웹셸이었고 base64로 인코딩되었습니다.
Windows에서 디렉터리를 찾고 있다면 Windows 파일 검색을 사용하면 됩니다. eval 또는 최근 수정된 파일을 검색할 수 있습니다. dedecs인 경우 최신 dedecs 취약점을 확인한 후 패치해야 합니다.

다음은 사이트의 루트 디렉터리에 직접 배치할 수 있는 PHP 트로이 목마 검색 도구입니다

코드 복사 코드는 다음과 같습니다.
/**************PHP 웹 트로이 목마 스캐너*************************/
/* [ ] 작성자: alibaba */
/* [ ] 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";

PHP 웹 트로이 목마 스캐너
$realpath = 실제 경로('./');
$selfpath = $_SERVER['PHP_SELF'];
$selfpath = substr($selfpath, 0, strrpos($selfpath,'/'));
Define('REALPATH', str_replace('//','/',str_replace('','/',substr($realpath, 0, strlen($realpath) - strlen($selfpath)))));
정의('MYFILE', 기본 이름(__FILE__));
정의('MYPATH', str_replace('', '/', dirname(__FILE__)).'/');
정의('MYFULLPATH', str_replace('', '/', (__FILE__)));
정의('HOST', "http://".$_SERVER['HTTP_HOST']);
?>


<?php echo $version?>

<스타일>
본문{마진:0px;}
본문,td{글꼴: 12px Arial,Tahoma;줄 높이: 16px;}
{색상: #00f;텍스트 장식:밑줄;}
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 solid #ddd;배경:#e9e9e9;padding:5px 10px 5px 5px;font-weight:bold;}
.head td 범위{font-weight:normal;}



if(!(isset($_COOKIE['t00ls']) && $_COOKIE['t00ls'] == $md5) && !(isset($_POST['username']) && isset($_POST['password'] ) && (md5(md5($_POST['사용자 이름']).md5($_POST['비밀번호']))==$md5)))
{
echo '
사용자 이름: : < /양식>';
}
elseif(isset($_POST['username']) && isset($_POST['password']) && (md5(md5($_POST['username']).md5($_POST['password']))= =$md5))
{
setcookie("t00ls", $md5, time() 60*60*24*365,"/");
echo "로그인 성공!";
헤더( '새로고침: 1; url='.MYFILE.'?action=scan' );
종료();
}
그 외
{
setcookie("t00ls", $md5, time() 60*60*24*365,"/");
$setting = getSetting();
$action = isset($_GET['action'])?$_GET['action']:"";

if($action=="로그아웃")
{
setcookie("t00ls", "", time() - 3600);
헤더("위치: ".MYFILE);
종료();
}
if($action=="download" && isset($_GET['file']) && Trim($_GET['file'])!="")
{
$file = $_GET['파일'];
ob_clean();
if (@file_exists($file)) {
header("콘텐츠 유형: 애플리케이션/옥텟-스트림");
header("Content-Disposition: filename="".basename($file).""");
echo file_get_contents($file);
}
종료();
}
?>







$version"?>

스캔 설정 로그아웃



<?php
if($action=="setting")
{
if(isset($_POST['btnsetting']))
{
$Ssetting = array();
$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();
}
?>


扫描设定

















文件后缀:
>
>
 




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








<?php
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);
?>
扫描: <?php echo $scanned?> 文件| 发现: <?php echo $count?> 可疑文件| 耗时: <?php echo $spent?> 秒

扫描路径:

  











}
}
}
ob_flush();
?>

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