Foros del Web » Programando para Internet » PHP »

problema con un hacker

Estas en el tema de problema con un hacker en el foro de PHP en Foros del Web. tengo problema con un hacker que me dice esto: No entiendo lo que querés decir con eso, yo puedo inyectar código SQL en el browser ...
  #1 (permalink)  
Antiguo 11/04/2011, 08:51
 
Fecha de Ingreso: enero-2008
Mensajes: 179
Antigüedad: 16 años, 11 meses
Puntos: 0
Exclamación problema con un hacker

tengo problema con un hacker que me dice esto:

No entiendo lo que querés decir con eso, yo puedo inyectar código SQL en el browser en cualquiera de tus páginas, por ejemplo en esta:

http://www.webdeejemplo.com/oficina-novedades.php?id=14

Y luego que tengo el nombre de la base de datos, saco las tablas y luego hago un dump del contenido de las tablas.

es verdad lo que me dice o me esta chamuyando? como puedo saber si es verdad? alguien conoce algun link que hable de este tema para investigarlo?

saludos!!
  #2 (permalink)  
Antiguo 11/04/2011, 09:13
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: problema con un hacker

pide que te diga el nombre de la tabla donde guardas las novedades, y solo así a saber... ¡que tampoco somos adivinos!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 11/04/2011, 10:05
Avatar de uikekarallo  
Fecha de Ingreso: diciembre-2009
Ubicación: Galicia
Mensajes: 338
Antigüedad: 15 años
Puntos: 16
Respuesta: problema con un hacker

Yo sólo sé que si no hay nombre de usuario y contraseña, el servidor no permite el acceso. Y eso de hacer consultas o "inyectar código" desde el navegador... Suena a cuento chino.
En todo caso, haz un backup completo y luego dile que te demuestre sus habilidades. Eso sí, por si acaso, que tu nombre de usuario y contraseña no sean fáciles, ¡no vaya a ser que el truco esté en entrar a tu base de datos a través de phpmyadmin!. entremezcla siempre números y letras para mayor seguridad.


Porque aunque hay gente que seguro es capaz de eso y mucho más, también es seguro que no van presumiendo de ello y "asustando" a la gente.

Ya nos contarás :)


Saludos.
  #4 (permalink)  
Antiguo 11/04/2011, 10:24
Avatar de xalupeao  
Fecha de Ingreso: mayo-2008
Ubicación: Santiago, Chile
Mensajes: 749
Antigüedad: 16 años, 7 meses
Puntos: 12
Respuesta: problema con un hacker

mysql_real_escape_string() ?

$id = (int) $_GET['id']; //forzar la variable

saludos :D

PD: adjunta tu codigo para ver, me imagino que puedes tener algo como

$query= mysql_query("SELECT * FROM noticias id=$_GET['id']");

xd
__________________
Hosting en Chile en Silverhost - La solución en Hosting en Chile.
  #5 (permalink)  
Antiguo 11/04/2011, 10:43
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 10 meses
Puntos: 288
Respuesta: problema con un hacker

la unica forma es que si consigue leer tu archivo de conexion con todos los datos de la base de datos
hay si puede tener acceso.

otra es esto

$query= mysql_query("SELECT * FROM noticias id=$_GET['id']");

donde el get trae una sentencia concatenada
por ej: GET["20 'where te saco lo quiero boloooooo' "]

20 es el id y luego otras consultas, total id en un nmero
  #6 (permalink)  
Antiguo 11/04/2011, 11:24
 
Fecha de Ingreso: enero-2005
Ubicación: Salta - Argentina
Mensajes: 322
Antigüedad: 19 años, 11 meses
Puntos: 7
Respuesta: problema con un hacker

Puede que sea verdad, pero depende si te contacto, ¿que te pide el a cambio?

yo hace un tiempo desarrolle una funcion para eliminar este tipo de ataques, usala, quizas te resulte de utilidad.

Código PHP:

function AntiHack($variable){
  foreach(
$variable as $campo => $valor){
   
        if (
strlen(ereg_replace('([a-zA-Z0-9_-])','',$valor))!=0){
               
header("location:index.php");
        }
  }


y despues llamas a la funcion de esta forma:

Código PHP:
AntiHack($_GET); 
Basicamente lo que esto hace es hacer que por la URL solo se reciban numeros, y letras (guiones bajos y guiones medios) sin que se permitan ningun otro caracter en especial.


si pones:
Código PHP:
AntiHack($_POST); 
ahi pones las mismas condiciones para los formularios, ten en cuenta en este ultimo caso que el usuario no podra poner ni comas ni puntos...

en fin, espero que te resulte de utilidad.
  #7 (permalink)  
Antiguo 11/04/2011, 18:52
 
Fecha de Ingreso: enero-2008
Mensajes: 179
Antigüedad: 16 años, 11 meses
Puntos: 0
Respuesta: problema con un hacker

muchas gracias por los comentarios

el flako no me pide nada a cambio eso es lo que me preocupa, al contrario me da pistas para que lo solucione y yo no se si me esta tomando el pelo o no.. el ya pudo entrar y me escribio un "ardamax estubo aqui"

supuestamente el saca la tabla usuarios con un error y despees "desencripta" el pasword que esta en MD5.. me dijo que lo hace con una de esas base de datos de md5.. pero una de esas la clave era "alfabetagama55" les parece a usetdes que una base de datos puede tener esa palabra?? :S

el loguin lo tengo con una funcion anti sql inyection. utilizo la funcion mysql_real_escape_string()

ademas se que del loguin al administrador no inyecto nada porque lo guardo en una tabla cada ingreso aproposito.

peude que mi compu tenga un keylloger no? igual ya la formatie y ahora le voy a pedir al flako que si me diga una ves mas la clave o al menos que me la de en MD5 porque la clabe que ahi ahora es todo numeros y letras..

ya cambie todas la claves, las del ftp, las de phpmyadmin y las de administrador.. me preocupa que me la digaa y estoy en problemas jaja.. les cuento haber que me responde.

el codigo es el siguiente:
Código PHP:
$id $_GET['id'];                
$resultado mysql_fetch_array(mysql_query("SELECT * FROM novedades WHERE id = $id LIMIT 1;")); 
es muy inseguro esto?

saludosss

Última edición por wawi; 11/04/2011 a las 18:58
  #8 (permalink)  
Antiguo 11/04/2011, 19:09
 
Fecha de Ingreso: noviembre-2008
Ubicación: Cochabamba Bolivia
Mensajes: 519
Antigüedad: 16 años
Puntos: 26
Respuesta: problema con un hacker

Me suena, a cuento chino, pero de todos modos ya como dijo uno ahi, haz una copia de seguridad de tu BD.
  #9 (permalink)  
Antiguo 11/04/2011, 20:02
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: problema con un hacker

Cita:
Iniciado por wawi Ver Mensaje
el codigo es el siguiente:
Código PHP:
$id $_GET['id'];                
$resultado mysql_fetch_array(mysql_query("SELECT * FROM novedades WHERE id = $id LIMIT 1;")); 
es muy inseguro esto?
tan inseguro que hasta la pregunta ofende...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 11/04/2011, 21:48
 
Fecha de Ingreso: enero-2008
Mensajes: 179
Antigüedad: 16 años, 11 meses
Puntos: 0
Respuesta: problema con un hacker

Cita:
Iniciado por pateketrueke Ver Mensaje
tan inseguro que hasta la pregunta ofende...
jaja y bueno me podrias decir que es lo que me hacen con esto? para que a esta persona le devuelva una tablaa de los usuarios?

yo lo corrigo y le pongo (int) pero me gustaria conocer como se mete para conocer bien el agujero ese y poder detectar otros ajugeros si es que los tengo

saludos y gracias.
  #11 (permalink)  
Antiguo 11/04/2011, 21:54
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: problema con un hacker

aquí te dejaron un pequeño ejemplo, sin embargo puedes investigar todo lo que quieras acerca de SQL Injection
Cita:
Iniciado por Patriarka Ver Mensaje
la unica forma es que si consigue leer tu archivo de conexion con todos los datos de la base de datos
hay si puede tener acceso.

otra es esto

$query= mysql_query("SELECT * FROM noticias id=$_GET['id']");

donde el get trae una sentencia concatenada
por ej: GET["20 'where te saco lo quiero boloooooo' "]

20 es el id y luego otras consultas, total id en un nmero
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #12 (permalink)  
Antiguo 11/04/2011, 21:58
(Desactivado)
 
Fecha de Ingreso: mayo-2005
Ubicación: España
Mensajes: 471
Antigüedad: 19 años, 7 meses
Puntos: 45
Respuesta: problema con un hacker

Claro que se pueden hacer sql injection, y de hecho es peligroso no utilizar la función mysql_real_escape, que para eso se inventó.
  #13 (permalink)  
Antiguo 11/04/2011, 22:04
Avatar de xalupeao  
Fecha de Ingreso: mayo-2008
Ubicación: Santiago, Chile
Mensajes: 749
Antigüedad: 16 años, 7 meses
Puntos: 12
Respuesta: problema con un hacker

Cita:
Iniciado por wawi Ver Mensaje
el codigo es el siguiente:
Código PHP:
$id $_GET['id'];                
$resultado mysql_fetch_array(mysql_query("SELECT * FROM novedades WHERE id = $id LIMIT 1;")); 
es muy inseguro esto?

saludosss
realmente si lees el post te hemos dado la respuesta mas de 4 veces, ahora una cosa efectivamente esa contraseña se encuentra en muchas bases de datos, lo mejor usa eje md5(md5($pass)); obviamente si lo haces como pones tu en el ejemplo el tipo facil ya te puede tener un shell en servidor y aunque parches seguira utilizando la shell OJO CON ESO!

y si vas a mandar una id (un entero) haz esto:

$id = (int) $_GET['id']; //muy seguro :D
__________________
Hosting en Chile en Silverhost - La solución en Hosting en Chile.
  #14 (permalink)  
Antiguo 11/04/2011, 22:07
(Desactivado)
 
Fecha de Ingreso: mayo-2005
Ubicación: España
Mensajes: 471
Antigüedad: 19 años, 7 meses
Puntos: 45
Respuesta: problema con un hacker

Los hackers solían aprovechar la vulnerabilidad de no escapar las comillas de modo que al utilizar comillas en alguno de los campos de la consulta se alteraba la sintaxis de la misma y de ese modo manipular a tu antojo la consulta a la BD.

Por ejemplo

entre comillas va el STRING de la consulta "", si se coloca una comilla simple en una variable que va entre comillas simples, el compilador interpreta la primera comilla simple como final de la variable y el código restante como parte de la consulta.

Con solo introducir esto ' OR '. se puede corromper el código. La primera comilla simple de la porción de texto hace string con la primera del código y la última con la última del código. Lo del medio sería interpretado como código de consulta.


WHERE id=' ' OR '. '
NATIVO | HACK | NATIVO

Etiquetas: hacker
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:30.