Foros del Web » Programando para Internet » PHP »

Ayuda con Blind SQL Injection

Estas en el tema de Ayuda con Blind SQL Injection en el foro de PHP en Foros del Web. Hola a todos, Tengo varios días tratando de resolver un problema pero no he encontrado la manera de como hacerlo, es acerca del 'blind sql ...
  #1 (permalink)  
Antiguo 05/01/2010, 13:11
Avatar de chidomen  
Fecha de Ingreso: enero-2005
Ubicación: aquí
Mensajes: 380
Antigüedad: 19 años, 9 meses
Puntos: 0
Pregunta Ayuda con Blind SQL Injection

Hola a todos,

Tengo varios días tratando de resolver un problema pero no he encontrado la manera de como hacerlo, es acerca del 'blind sql injection', estoy usando PHP 5 y Postgresql.

Tengo un servicio el cual revisa el sitio para cuidar la seguridad, recibí este mensaje:
Possible blind sql injection on https://www.mysitio.com/html/searchResults.php?q=+and+1%3D1">
This website may have other injection related vulnerabilities.

Esto es sólo en la pagina para buscar productos, investigue un poco, modifique el texto que se usa para buscar producto, usando esto:
$param = pg_escape_string($param);
$param = pg_escape_bytea($param);

Pero sigo con el mismo problema,

Que puedo hacer?

Espero que me puedan ayudar,
De antemano muchas gracias
__________________
.. simplemente soy un mexicano apasionado ..
guasanericonsul.com
  #2 (permalink)  
Antiguo 05/01/2010, 13:17
Avatar de TKZeXe  
Fecha de Ingreso: diciembre-2009
Ubicación: Flowers
Mensajes: 166
Antigüedad: 14 años, 10 meses
Puntos: 6
Respuesta: Ayuda con Blind SQL Injection

Blind injection es una tecnica para injectar sql code sin saber los errores que te arroja , pueden
sacar una contraseña por ejemplo a fuerza bruta, con tamperdata por ejemplo poniendo como password:

tkz' or 'a'='a

inclusive ataques de diccionario, te recomiendo escapar las cadenas ingresadas con addslashes y cualquier metodo para encontrar SQL code en las urls, te lo puedes hacer tu con REGXP si lo deseas, para que no te encuentres con UNION , DROP, SHUTDOWN,DELETE , UPDATE, etc
en las urls, tambien hazte un log de todo lo que ingresa el usuario por los campos, ais te daras una idea de por donde te intentan atacar.

esto por mientras.

ejemplo de uno de logs:
Código txt:
Ver original
  1. ==================================
  2. IP: 200.83.123.16
  3. Method: POST
  4. Value:  \'x\'; update character set strength=32767,dexterity=32767,energy=32767,vitality=32767,leadership=32767 where name = \'koyote\'
  5. Script:
  6. Time: Sunday 28th 2009f June 2009 10:23:30 PM
  7. ==================================
  8. IP: 200.83.123.16
  9. Method: POST
  10. Value:  \'x\'; INSERT INTO MuWeb_admin(username,password,securitycode)VALUES(\'MUAdmin\',\'123123\',\'0123\')
  11. Script:
  12. Time: Sunday 28th 2009f June 2009 10:24:17 PM
  13. ==================================

bites
  #3 (permalink)  
Antiguo 05/01/2010, 13:41
Avatar de chidomen  
Fecha de Ingreso: enero-2005
Ubicación: aquí
Mensajes: 380
Antigüedad: 19 años, 9 meses
Puntos: 0
Respuesta: Ayuda con Blind SQL Injection

Hola TKZeXe,

Gracias por responder, entiendo lo que me comentas sobre los addslashes,
$param = pg_escape_string($param);
$param = pg_escape_bytea($param);
$param = addslashes($param);

Lo que no entendí y me te pediría que me ayudaras es con REGXP, a que te refieres con ello,

Espero que me puedas ayudar

Saludos
__________________
.. simplemente soy un mexicano apasionado ..
guasanericonsul.com
  #4 (permalink)  
Antiguo 05/01/2010, 13:42
Avatar de LuZBinG  
Fecha de Ingreso: enero-2008
Mensajes: 407
Antigüedad: 16 años, 10 meses
Puntos: 5
De acuerdo Respuesta: Ayuda con Blind SQL Injection

como dice tkzexe es una injeccion sql que ataca las bd

prueba esto:
$param = mysql_real_escape_string($param);

ejemplo:
Código PHP:

$param 
mysql_real_escape_string($param);
$SQL "SELECT * FROM username WHERE username = '".$param."'";
echo 
'nombre: '.stripslashes($nombre); 
prueba...
__________________
LuZbIng
  #5 (permalink)  
Antiguo 05/01/2010, 13:44
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Ayuda con Blind SQL Injection

@LuZBinG el problema es que esta usando Postgresql no MySQL.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #6 (permalink)  
Antiguo 05/01/2010, 13:44
Avatar de chidomen  
Fecha de Ingreso: enero-2005
Ubicación: aquí
Mensajes: 380
Antigüedad: 19 años, 9 meses
Puntos: 0
Respuesta: Ayuda con Blind SQL Injection

Hola LuzBinG,

Gracias por la información, en mi caso estoy usando como bd postgresql, afectara si uso 'mysql_real_escape_string'?

Saludos
__________________
.. simplemente soy un mexicano apasionado ..
guasanericonsul.com
  #7 (permalink)  
Antiguo 05/01/2010, 13:45
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Ayuda con Blind SQL Injection

Esa funcion es para mysql
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #8 (permalink)  
Antiguo 05/01/2010, 13:51
Avatar de TKZeXe  
Fecha de Ingreso: diciembre-2009
Ubicación: Flowers
Mensajes: 166
Antigüedad: 14 años, 10 meses
Puntos: 6
Respuesta: Ayuda con Blind SQL Injection

Con gusto te paso una función que tengo en una de mis webs.
que por lo demas son muy atacadas jajaj (de juegos),
usalas y pasalas al que te las pida, todo sea por ayudar en algo. ^^

Código PHP:
Ver original
  1. function check_inject()
  2.   {
  3.     $badchars = array(";","'","*","/"," \ ","DROP", "SELECT", "UPDATE", "DELETE", "drop", "select", "update", "delete", "WHERE", "where", "-1", "-2", "-3","-4", "-5", "-6", "-7", "-8", "-9",);
  4.    
  5.     foreach($_POST as $value)
  6.     {
  7.     $value = clean_variable($value);
  8.  
  9.     if(in_array($value, $badchars))
  10.       {
  11.         die("SQL Injection Detected - Make sure only to use letters and numbers!\n<br />\nIP: ".$_SERVER['REMOTE_ADDR']);
  12.       }
  13.       else
  14.       {
  15.         $check = preg_split("//", $value, -1, PREG_SPLIT_OFFSET_CAPTURE);
  16.         foreach($check as $char)
  17.         {
  18.           if(in_array($char, $badchars))
  19.           {
  20.             die("SQL Injection Detected - Make sure only to use letters and numbers!\n<br />\nIP: ".$_SERVER['REMOTE_ADDR']);
  21.           }
  22.         }
  23.       }
  24.     }
  25.   }
  26. function clean_variable($var)
  27.     {
  28.     $newvar = preg_replace('/[^a-zA-Z0-9\_\-]/', '', $var);
  29.     return $newvar;
  30.     }
  #9 (permalink)  
Antiguo 05/01/2010, 13:58
Avatar de LuZBinG  
Fecha de Ingreso: enero-2008
Mensajes: 407
Antigüedad: 16 años, 10 meses
Puntos: 5
De acuerdo Respuesta: Ayuda con Blind SQL Injection

upss perdon


gracias TKZeXe y muy buena funcion
__________________
LuZbIng
  #10 (permalink)  
Antiguo 05/01/2010, 14:51
Avatar de chidomen  
Fecha de Ingreso: enero-2005
Ubicación: aquí
Mensajes: 380
Antigüedad: 19 años, 9 meses
Puntos: 0
Respuesta: Ayuda con Blind SQL Injection

Muchas gracias por el código, voy a implementarlo y te contare los resultados

Saludos
__________________
.. simplemente soy un mexicano apasionado ..
guasanericonsul.com

Etiquetas: injection, sql
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 10:17.