Foros del Web » Programando para Internet » PHP »

Me hackean...

Estas en el tema de Me hackean... en el foro de PHP en Foros del Web. Hace tiempo puse un sistema de seguridad en el que incluía algunas partes en vez de Mysql a PDO, también strip_tags(), aunque me parecía un ...
  #1 (permalink)  
Antiguo 12/07/2013, 13:06
Avatar de iEnrique  
Fecha de Ingreso: abril-2013
Ubicación: España
Mensajes: 346
Antigüedad: 11 años
Puntos: 5
Exclamación Me hackean...

Hace tiempo puse un sistema de seguridad en el que incluía algunas partes en vez de Mysql a PDO, también strip_tags(), aunque me parecía un poco inútil pasar a PDO cuando pida datos en una página normal como los datos de la imagen de perfil, etc.. Lo que incluye que en las imágenes me asegurase de que es una imagen para añadir una imagen a un posts que es una acción que tengo en la web. Tengo un sistema de encriptar contraseñas con crypt() y no falla, por ahí no van los tiros...

Los posts que publican los usuarios se publican en el incio (index.php) que es el mismo que aparece al entrar a la web, solo que en la web hay un if importante que separa si existe un usuario en $_SESSION['username'] pone un inicio diferente a cuando a iniciado sesión. Lo que ha hecho este usuario es que me ha quitado el index.php por otro que ha hecho supuestamente él, pienso que podría ser de algún lugar donde se pudan subir imágenes o algún archivo ya que las otras no me aseguro que sea un archivo .png o algún archivo de imagenes o que no lo sea (podría meter un archivo .php) pero de todas formas se metería en la carpeta de "perfiles" que tengo reservado para ellas, ¿puede que me haya cambiado el sitio que guarde los archivos por el principal y que haya sustituido el index.php por el que me ha puesto, ya que solo es esa página? No lo sé...

Quisiera que me dierais todo tipo de seguridad que me podáis dar aparte de la que ya tengo. Ya he dicho que todo no lo tengo en PDO, es más no solo cuando pido datos como he dicho antes sino cuando envío algún que otro dato no lo tengo en PDO, lo estoy pasando aún, pero que más etiquetas y actos debo hacer... Me tiene harto porque siempre es el mismo. Tengo su IP pero no lo voy a denunciar solo quiero arreglarlo, además esto me puede ayudar a aprender.

Muchas gracias a todos, espero que podáis colaborar con lo que sepáis...
  #2 (permalink)  
Antiguo 12/07/2013, 13:07
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Me hackean...

Creo que necesitas leer esto: http://www.forosdelweb.com/f18/aport...a-php-1011808/
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 13/07/2013, 12:25
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Me hackean...

Bueno amigoya te han hecho de las suyas otra vez que mala pata , todavia tienes agujeros pendientes consultas no migradas mala verificacion de imagenes etc...

lo mas importante que te recomiendo es que te crees un log donde se almacene todo los cambios en la web , por ejemplo

si me intento loguear antes de consultarlo guardo algo como

hora fecha accion/login ip etc..

si inserto una imagen

hora fecha accion/subida de imagen ip nombre etc ... incluso una copia a un directorio privado protegido con .htaccess etc.... etc......

los datos tambien son importantes por ver que introduce en los formularios etc....

asi podras hacer un seguimiento del usuario y ver por donde te ataca etc...
  #4 (permalink)  
Antiguo 15/07/2013, 05:37
Avatar de iEnrique  
Fecha de Ingreso: abril-2013
Ubicación: España
Mensajes: 346
Antigüedad: 11 años
Puntos: 5
Respuesta: Me hackean...

Muchas gracias mientras que voy haciendo todo lo que me habéis dicho hago el registro para que me diga todo lo que hacen los usuarios y ese usuario en concreto que me tiene hasta la coronilla, no hace más que buscarme las cosquillas. Menos mal que me decís trucos. Por cierto, ¿me podéis dar todos los aportes que tengáis de estos de seguridadsi no es mucha molestia? Muchas gracias
  #5 (permalink)  
Antiguo 15/07/2013, 08:07
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Me hackean...

Podrías crear un log, más o menos así:

Código PHP:
Ver original
  1. // La extensión .php  junto con el exit es para que no se muestre el contenido en el navegador
  2. $log = 'atacante.php';
  3. $ipAtacante = 'la ip del tipo en cuestión';
  4.  
  5. if(count($_POST) > 0 && $_SERVER['REMOTE_ADDR'] == $ipAtacante) {
  6.     $datos = var_export($_POST, true);
  7.     $contenido = "<?php exit;\n";
  8.    $contenido .= <<<EOT
  9.         Query string = {$_SERVER['QUERY_STRING']}
  10.         Datos por POST = $datos
  11.         ----------------------------------------------------------------
  12.  
  13. EOT;
  14.    // Finalmente lo guardas
  15.    file_put_contents($log, $contenido, FILE_APPEND);
  16. }

Coloca este código en alguno de tus archivos que incluyes para todos los procesos, puede ser el de conexión a base de datos o algún otro.

Con eso puedes monitorear la actividad del atacante y tratar de averiguar cómo es que te está hackeando.
__________________
- León, Guanajuato
- GV-Foto
  #6 (permalink)  
Antiguo 16/07/2013, 05:25
Avatar de iEnrique  
Fecha de Ingreso: abril-2013
Ubicación: España
Mensajes: 346
Antigüedad: 11 años
Puntos: 5
Respuesta: Me hackean...

Vale, ¿y donde guarda eso? El resultado digo... No se le da ninguna información... Muchas gracias!
  #7 (permalink)  
Antiguo 16/07/2013, 05:30
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Me hackean...

Pues puedes guardarlo en un directorio llamado xxx como tu quieras

dentro introduces un archivo .htaccess con el contenido siguiente

deny from all

y ya en ese directorio guardas los logs

$log = 'xxx/atacante.php';

y ya tu eres el unico que puede revisar dicho archivo te lo puedes descargar via ftp etc... y verlo en tu local por ejemplo

o en tu perfil de administrador etc... pero ya es algo mas complejo

logicamente hay muchas formas de guardar y ver un log .

¿por cierto podias subir el index que te genero el usuario??por ver que queria hacer?

Última edición por webankenovi; 16/07/2013 a las 05:36
  #8 (permalink)  
Antiguo 16/07/2013, 08:51
Avatar de iEnrique  
Fecha de Ingreso: abril-2013
Ubicación: España
Mensajes: 346
Antigüedad: 11 años
Puntos: 5
Respuesta: Me hackean...

Cita:
Iniciado por webankenovi Ver Mensaje
Pues puedes guardarlo en un directorio llamado xxx como tu quieras

dentro introduces un archivo .htaccess con el contenido siguiente

deny from all

y ya en ese directorio guardas los logs

$log = 'xxx/atacante.php';

y ya tu eres el unico que puede revisar dicho archivo te lo puedes descargar via ftp etc... y verlo en tu local por ejemplo

o en tu perfil de administrador etc... pero ya es algo mas complejo

logicamente hay muchas formas de guardar y ver un log .

¿por cierto podias subir el index que te genero el usuario??por ver que queria hacer?
Vale, es que ahora no tengo Internet (sólo en el móvil) y es por eso por lo que no puedo ayudaros con código. Hago todo lo que me decís y ya os lo muestro cuando para comprobar que no tengo fallos. Ando haciendo los registros de lo que hacen los usuarios y me pongo manos a la obra con eso para cuando tenga Internet os lo muestre y os muestro también el index que me puso el hacker.
  #9 (permalink)  
Antiguo 17/07/2013, 11:53
Avatar de iEnrique  
Fecha de Ingreso: abril-2013
Ubicación: España
Mensajes: 346
Antigüedad: 11 años
Puntos: 5
Respuesta: Me hackean...

Aunque quizá haya un problema y es que si el hacker me borra los mensajes quizá también me borre los registrosal subirlos a la base de datos...
  #10 (permalink)  
Antiguo 17/07/2013, 12:10
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Me hackean...

En ningun momento te dijimos de guardarlo en una base de datos, si no en un archivo .php , para que los datos no sean visibles desde la url . ademas dentro de un directorio protegido para que no pueda entrar y borrarlo o alterarlo .

en la raiz de tu directorio , crea un directorio nuevo llamado por ejemplo 4h3jkh54yhj3h5l453 dentro introduces un archivo .htaccess con el siguiente contenido

.htaccess
Código Apache:
Ver original
  1. # en primer lugar prevenimos el listado de las carpetas
  2.     IndexIgnore *
  3.      
  4.     # en segundo no mostramos ningun listado , no indexa nada
  5.     Options All -Indexes
  6.      
  7.     # en tercera denegamos cualquier acceso a cualquier archivo
  8.     Deny from all


ay dentro es donde debes guardar los archivos de log , digamos que tienes que crear un script que guarde los resultados en este directorio , aqui vas guardando los archivos que vas creando con el script y ese script debe de estar en todas las paginas mediante un include y el se encarga de registrar todo y guardarlo en un archivo de log.php el nombre que des a los logs puede ser por dia/hora etc... tambien puedes guardar todos los logs en un solo archivo .

oye no tienes acceso al log de apache ? al de php? mysql? puedes echar un vistazo haber si encuentras algo de lo que pudo hacer en esos logs
  #11 (permalink)  
Antiguo 22/07/2013, 09:04
Avatar de iEnrique  
Fecha de Ingreso: abril-2013
Ubicación: España
Mensajes: 346
Antigüedad: 11 años
Puntos: 5
Respuesta: Me hackean...

Bueno ya estoy devuelta de las vacaciones y estoy al 100% en tanto a la colaboración con el tema. He hecho lo que creo que me habeis dicho y os lo muestro en imagenes:
Esta es la página global.php que se encuentra en todas las páginas de la web:



Y esta la supuesta carpeta 4h3jkh54yhj3h5l453 que contiene el .htaccess que podéis comprobar en la imagen y el archivo atacante.php que está vacio por lo que no lo muestro.



¿Eso es todo? Cualquier cosa me comunicais o si he fallado en algo, lo que sea y ahora que deberé hacer, esperar a que me hacke otra vez y descargarme el archivo atacante.php de la web normal... ¿no? Muchas gracias .
  #12 (permalink)  
Antiguo 22/07/2013, 12:49
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Me hackean...

bueno lo veo todo bien, unas recomendaciones:

- modifica el nombre del directorio y archivo y no los publiques ya que hiciste publica la url cualquiera puede saber la ubicacion si no lo modificas, siempre publica ejemplos no los reales a usar ok!

- si el usuario cambia de ip el script de triby ya no guardaria ningun log , por lo cual te recomiendo crear un log general para todos los usuarios tal que asi

Código PHP:
Ver original
  1. <?php  
  2.  
  3. $log = 'log.php';
  4.    
  5. if(count($_POST) > 0 )
  6. {
  7.     $datos = var_export($_POST, true);
  8.     $contenido = "<?php exit;\n";
  9.     $contenido .= <<<EOT
  10.             Method = POST
  11.             IP = {$_SERVER['REMOTE_ADDR']}
  12.             Datos = $datos
  13.             ----------------------------------------------------------------
  14. EOT;
  15.  
  16. file_put_contents($log, $contenido, FILE_APPEND);
  17.  
  18. }
  19.  
  20. $contenido = null;
  21. $datos = null;
  22.  
  23.  
  24. if(count($_GET) > 0 )
  25. {
  26.     $datos = var_export($_GET, true);
  27.     $contenido = "<?php exit;\n";
  28.     $contenido .= <<<EOT
  29.             Method = GET
  30.             IP = {$_SERVER['REMOTE_ADDR']}
  31.             Query string = {$_SERVER['QUERY_STRING']}
  32.             Datos = $datos
  33.             ----------------------------------------------------------------
  34.      
  35. EOT;
  36.  
  37. file_put_contents($log, $contenido, FILE_APPEND);
  38.  
  39. }  
  40.  
  41.  
  42.  
  43. ?>

de esta manera no solo monitoreas a ese usuario si no a cualquiera, ademas puedes tambien guardar la hora etc y crear logs por dias etc... pero eso ya es cosa de archivos , el script es simple y suficiente para lo que tu quieres pero podrias mejorarlo , eso ya te lo dejamos a ti .

saludos y sigue asi --->>

Última edición por webankenovi; 22/07/2013 a las 12:59
  #13 (permalink)  
Antiguo 22/07/2013, 13:59
Avatar de iEnrique  
Fecha de Ingreso: abril-2013
Ubicación: España
Mensajes: 346
Antigüedad: 11 años
Puntos: 5
Respuesta: Me hackean...

Vale muchas gracias le echaré un vistazo por si lo detallo más pero no te preocupes por la URL, mostré la tuya como ejemplo. Muchísimas gracias de verdad a los dos y te quería consultar una cosa. ¿No se pueden enviar valores numéricos a través de PDO? Es que por más que busco no encuentro forma para hacerlo, gracias!

Etiquetas: mysql, usuarios
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 12:25.