Foros del Web » Programando para Internet » PHP »

Consulta. Me hackearon la web

Estas en el tema de Consulta. Me hackearon la web en el foro de PHP en Foros del Web. Hola, tengo un problema. Tengo una web modular y me han hackeado, me borraron las carpetas y archivos lo restableci y lo volvieron a hacer, ...
  #1 (permalink)  
Antiguo 02/11/2006, 10:26
Avatar de roswell  
Fecha de Ingreso: abril-2004
Ubicación: Buenos Aires
Mensajes: 80
Antigüedad: 20 años, 7 meses
Puntos: 0
Exclamación Consulta. Me hackearon la web

Hola, tengo un problema. Tengo una web modular y me han hackeado, me borraron las carpetas y archivos lo restableci y lo volvieron a hacer, queria saber por donde debo empezar para encontrar por donde estan accediendo y borrando las cosas.

Las claves del FTP ya las he cambiado por las dudas. Pero aun asi entraron y no se por donde empezar para chequear y saber por donde. Si se puede bloquear por .htaccess para estar mas tranquilo y poder trabajar en la web.

Saludos y gracias.
  #2 (permalink)  
Antiguo 02/11/2006, 10:33
Avatar de helthon  
Fecha de Ingreso: junio-2005
Ubicación: Lima
Mensajes: 549
Antigüedad: 19 años, 5 meses
Puntos: 7
A mi me parecio algo similar con mi web modular. era cuestion de arreglar el codigo
mira lo que me paso :

http://www.forosdelweb.com/f18/seguridad-con-includes-get-post-435675/
__________________
HELTHON FUENTES
FLORERIA FLORES PERU Floresperu.com.pe
Garantizamos que cada entrega de flores será de la más alta calidad y frescura
  #3 (permalink)  
Antiguo 02/11/2006, 10:40
Avatar de roswell  
Fecha de Ingreso: abril-2004
Ubicación: Buenos Aires
Mensajes: 80
Antigüedad: 20 años, 7 meses
Puntos: 0
o sea que me recomendas que donde tenga hechos includes no los ponga como :

Código PHP:
include("loquesea.php"); 
Ponga:

Código PHP:
$archivo="loquesea.php";
include (
$archivo); 
Saludos.
  #4 (permalink)  
Antiguo 02/11/2006, 10:53
Avatar de helthon  
Fecha de Ingreso: junio-2005
Ubicación: Lima
Mensajes: 549
Antigüedad: 19 años, 5 meses
Puntos: 7
Como es tu web modular. una solucion que me dieron era que realice una funcion donde tenga todos los nombres de mis paginas (aun no lo realizo)

Cita:
Cluster
Moderador
switch() .. o con un array que contenga tu asociación identificador
__________________
HELTHON FUENTES
FLORERIA FLORES PERU Floresperu.com.pe
Garantizamos que cada entrega de flores será de la más alta calidad y frescura
  #5 (permalink)  
Antiguo 02/11/2006, 10:56
Avatar de roswell  
Fecha de Ingreso: abril-2004
Ubicación: Buenos Aires
Mensajes: 80
Antigüedad: 20 años, 7 meses
Puntos: 0
Yo lo que tengo es este archivo que contiene todos los nombres de los modulos:

Código PHP:
<?php
/*
 * Archivo de configuración para nuestra aplicación modularizada.
 * Definimos valores por defecto y datos para cada uno de nuestros módulos.
*/
define('MODULO_DEFECTO''home');
define('LAYOUT_DEFECTO''layout_simple.php');
define('TITLE_DEFECTO''Patria Quemera - web no oficial de Huracán');
define('MODULO_PATH'realpath('./modulos/'));
define('LAYOUT_PATH'realpath('./layouts/'));

$web="Patria Quemera";

$conf['home'] = array(
        
'archivo' => 'home.php',
        
'layout' => 'layout_portada.php',
        
'title' => TITLE_DEFECTO );
$conf['articulo'] = array(
        
'archivo' => 'art.php',
        
'layout' => LAYOUT_DEFECTO );
$conf['imp_art'] = array(
        
'archivo' => $conf['articulo']['archivo'],
        
'layout' => 'imprimir.php' );
$conf['login'] = array(
        
'archivo' => 'gestion_usuarios.php',
        
'layout' => LAYOUT_DEFECTO,
        
'title' => 'Login Usuario' );
$conf['logout'] = array(
        
'archivo' => 'out.php',
        
'layout' => LAYOUT_DEFECTO,
        
'title' => 'Logout Usuario' );
?>
y el index.php que llama a ese archivo es asi:

Código PHP:
<?php
ob_start
();
//error_reporting(E_ALL);
// Primero incluimos el archivo de configuración
include('conf.php');

/** Verificamos que se haya escogido un modulo, sino
* tomamos el valor por defecto de la configuración.
*/
if (!empty($_GET['mod']))
    
$modulo $_GET['mod'];
else
    
$modulo MODULO_DEFECTO;

/** También debemos verificar que el valor que nos
* pasaron, corresponde a un modulo que existe, caso
* contrario, cargamos el modulo por defecto
*/
if (empty($conf[$modulo]))
        
$modulo MODULO_DEFECTO;

/** Ahora determinamos que archivo de Layout tendrá
* este módulo, si no tiene ninguno asignado, utilizamos
* el que viene por defecto
*/
if (empty($conf[$modulo]['layout']))
        
$conf[$modulo]['layout'] = LAYOUT_DEFECTO;

if (empty(
$conf[$modulo]['title']))
        
$conf[$modulo]['title'] = TITLE_DEFECTO;
              
$title=$conf[$modulo]['title'];

// Aqui podemos colocar todos los comandos necesarios para
// realizar las tareas que se deben repetir en cada recarga
// del index.php - En el ejemplo, conexión a la base de datos.
?>
<HEAD>
<META NAME="Title" CONTENT="Patria Quemera - Sitio no Oficial de Huracán">
<META NAME="Author" CONTENT="PatriaQuemera">
<META NAME="Description" CONTENT="Toda la información del Club Huracán tanto en la web como en los foros quemeros">
<META NAME="Keywords" CONTENT="PatriaQuemera Huracán Quemero Fútbol Ducó Club Oficial Quemera Mohamed Fixture Torneo Nacional Sitio">
<META NAME="Robots" CONTENT="All">
</head>
<?

include("clases/conexion.php");

 echo 
"<LINK href=\"css/estilo.css\" rel=stylesheet>\n";
 include(
"includes/functions.php");
// include("scripts/banner.html");
/** Finalmente, cargamos el archivo de Layout que a su vez, se
* encargará de incluir al módulo propiamente dicho. si el archivo
* no existiera, cargamos directamente el módulo. También es un
* buen lugar para incluir Headers y Footers comunes.
*/
$path_layout LAYOUT_PATH.'/'.$conf[$modulo]['layout'];
$path_modulo MODULO_PATH.'/'.$conf[$modulo]['archivo'];

if (
file_exists($path_layout))
    include( 
$path_layout );
else
    if (
file_exists$path_modulo ))
        include( 
$path_modulo );
    else
        die(
'Error al cargar el módulo <b>'.$modulo.'</b>. No existe el archivo <b>'.$conf[$modulo]['archivo'].'</b>');
ob_end_flush();
?>
  #6 (permalink)  
Antiguo 09/11/2006, 07:41
Avatar de helthon  
Fecha de Ingreso: junio-2005
Ubicación: Lima
Mensajes: 549
Antigüedad: 19 años, 5 meses
Puntos: 7
revisalo desde aca

http://www.forosdelweb.com/f18/comentarios-php-remote-file-inclucion-327838/
Código PHP:
<?php 
// logicamente aqui no hay problema 
include('algo.php'); 


//aqui tampoco hay problema 
$pagina $_GET['pagina']; 
$permitidas = array('principal','noticias','algo'); 
if(
in_array($pagina$permitidas)) 
    include(
$pagina.'.php'); 



//aqui tampoco 
$pagina $_GET['pagina']; 
switch(
$pagina

    case 
'principal': include('principal.php'); break; 
    case 
'noticias': include('news.php'); break; 
    case 
'algo': include('algo.php'); break; 
    default: include(
'principal.php'); 



/* ATENCIÓN - WEEEEEEEEEEEEEEEE */ 
//el problema está en no saber que recibes 
include($pagina); //ESTO NUNCA!!! 
?>
Cita:
Solo una aclaración más ...
Código PHP:
/* ATENCIÓN - WEEEEEEEEEEEEEEEE */
//el problema está en no saber que recibes
include($pagina); //ESTO NUNCA!!!

así como mencionan .. y como se comenta NUNCA! usar así un "include()" ni un fopen() .. ni un readfile() .. ni funciones que puedan llamar a código (para ejecutarlo como es include) ni para abrirlo (como es el caso de fopen() .. readfile() .. etc).

Pero .. en ese ejemplo si -antes- y he de ahí lo importante se ha definido dicha variable .. no habrá problemas:


Código PHP:
$pagina="nose.php";
include($pagina); // siempre y cuando esté definido $pagina.

Por supuesto .. el ejemplo no es de lo más "ejemplar" valga la rebundancia .. pero imaginemos el caso que tenemos ese switch($pagina) y en lugar de hacer un montón de include() por cada "case" .. definimos $pagina y luego hacemos un include ($pagina) con el valor que resultó tras pasar por el Switch() .. (vendría a ser lo mismo que el ejemplo anterior que indicó $thisone sobre el uso de in_array() ..)

Un saludo,
__________________
HELTHON FUENTES
FLORERIA FLORES PERU Floresperu.com.pe
Garantizamos que cada entrega de flores será de la más alta calidad y frescura
  #7 (permalink)  
Antiguo 09/11/2006, 07:59
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
En su base .. el sistema modular que usas es correcto roswell, por lo menos se valida el "modulo" a ingresar por tu array de definición de "referencia->script.php a incluir". (Parece el código del tutorial de web modular de www.zonaphp.com no?)

Habría que analizar que tipo de "hackeo" te han hecho . . hay de muchos tipos.

Podría ser hasta un "vecino" de un servidor compartido sumado a una mala configuración de PHP el que pueda acceder a los directorio de tu sitio asignado y modificar el código fuente de tus scripts PHP directamente o borrarlos ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 21:43.