elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 05:42  


Tema destacado: [AIO elhacker.NET] Compilación herramientas análisis y desinfección malware

+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Bugs y Exploits
| | |-+  Nivel Web (Moderadores: sirdarckcat, WHK)
| | | |-+  Evitar inyeccion SQL en mysql y redireccionar
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Evitar inyeccion SQL en mysql y redireccionar  (Leído 4,453 veces)
asasasaq

Desconectado Desconectado

Mensajes: 30


Ver Perfil WWW
Evitar inyeccion SQL en mysql y redireccionar
« en: 17 Marzo 2010, 03:32 »

Hola muy biuenas a todos los del foro, disculpen la pregunta

Como haria para cuando inyecten codigos maliciosos de SQL como and 1=1, comillas etc.., redireccione a otra web.

Ejemplo, saltara un alert diciendo: Codigo malicioso.

Y redireccionara a la pagina principal, al index de la misma web

Bueno es todo, espero me hayan entendido

Saludos.
« Última modificación: 17 Marzo 2010, 03:33 por asasasaq » En línea
Shell Root


Desconectado Desconectado

Mensajes: 2.456


Alex Jurado


Ver Perfil WWW
Re: Evitar inyeccion SQL en mysql y redireccionar
« Respuesta #1 en: 17 Marzo 2010, 03:47 »

1. http://foro.elhacker.net/nivel_web/como_evitar_la_inyeccion_sql-t252384.0.html;msg1219985#msg1219985
2. http://foro.elhacker.net/seguridad/prevenir_sql_injection-t261480.0.html;msg1272220#msg1272220
En línea

---
^Tifa^


Desconectado Desconectado

Mensajes: 2.802


Ver Perfil
Re: Evitar inyeccion SQL en mysql y redireccionar
« Respuesta #2 en: 17 Marzo 2010, 04:10 »

Tambien puede considerar MySQL Proxy   :rolleyes:
En línea
Nakp
casi es
Ex-Staff
*
Desconectado Desconectado

Mensajes: 6.334

he vuelto :)


Ver Perfil WWW
Re: Evitar inyeccion SQL en mysql y redireccionar
« Respuesta #3 en: 17 Marzo 2010, 04:17 »

Tambien puede considerar MySQL Proxy :rolleyes:

vos decis... procesos almacenados xD, pues estuve investigando mas cuando los mencionaste y por php solamente pueden usarse con PDO o mysqli, pero con ambos tambien tienes las sentencias preparadas que son casi lo mismo pero del lado de la aplicacion :D
En línea

Ojo por ojo, y el mundo acabará ciego.
^Tifa^


Desconectado Desconectado

Mensajes: 2.802


Ver Perfil
Re: Evitar inyeccion SQL en mysql y redireccionar
« Respuesta #4 en: 17 Marzo 2010, 04:20 »

No del todo... aunque los procedimientos almacenados tambien son validos  ;)  para estos casos.

Pero me referia a MySQL Proxy:

http://www.linux-party.com/modules.php?name=News&file=article&sid=2026:mysql-proxy-0.5.0

Tambien puede considerar GreenSQL  :rolleyes:

http://h4xxor.blogspot.com/2010/02/greensql-firewall-software.html
En línea
asasasaq

Desconectado Desconectado

Mensajes: 30


Ver Perfil WWW
Re: Evitar inyeccion SQL en mysql y redireccionar
« Respuesta #5 en: 17 Marzo 2010, 04:57 »

Ok, esta valido los codigos, pero quiero ahora esto, que salte un alert (alerta)

Por ejemplo al insertar yo esto .php?id=1 and 1=1 o comilla etc.. me salte un alert diciendo "Estas intentando hackearme" y redireccionar a la index

Gracias por su ayuda.
« Última modificación: 17 Marzo 2010, 05:01 por asasasaq » En línea
tragantras


Desconectado Desconectado

Mensajes: 466


Ver Perfil
Re: Evitar inyeccion SQL en mysql y redireccionar
« Respuesta #6 en: 17 Marzo 2010, 14:09 »

si la variable es de tipo "int" que por lo menos en esos casos que estás exponiendo si lo es, pueds probar a hacer lo siguiente


Código
if(!is_numeric($_GET['id'])){
 echo "A hackear a tu madre niño";
}

y luego ya ahi redireccionas "as you want"
En línea

Colaboraciones:
1 2
asasasaq

Desconectado Desconectado

Mensajes: 30


Ver Perfil WWW
Re: Evitar inyeccion SQL en mysql y redireccionar
« Respuesta #7 en: 17 Marzo 2010, 15:21 »

Una pregunta, como seria el codigo para redireccionar?

Disculpa la pregunta

Saludos...

Gracias por el code ese seria el alert no?
En línea
fede_cp


Desconectado Desconectado

Mensajes: 526


"porque pensar nunca fue entender"


Ver Perfil WWW
Re: Evitar inyeccion SQL en mysql y redireccionar
« Respuesta #8 en: 17 Marzo 2010, 15:48 »

Código
<?php 
header ("Location:redireccion.html");
?>

Ei, no me parece nada profesional ponerme, intentas "hackerme" jaja.

no le pongas nada  y listo.


saludos!
En línea

somos lo que hacemos para cambiar lo que somos

http://elhackerblog.blogspot.com el blog de elhacker.net!!
^Tifa^


Desconectado Desconectado

Mensajes: 2.802


Ver Perfil
Re: Evitar inyeccion SQL en mysql y redireccionar
« Respuesta #9 en: 17 Marzo 2010, 15:56 »

Citar
Ei, no me parece nada profesional ponerme, intentas "hackerme" jaja.

Lo mismo habia pensado  ;D

Tengo entendido que el proposito de evadir las inyecciones SQL es protegerse, pero decirles avisos de los tipos sugeridos es rebajarse al nivel de quien te ataca. Y no es el proposito a nivel profesional...

Pero si el quiere hacerlo de esa manera, hay que respetarsela y intentar darle una guia  :P
En línea
asasasaq

Desconectado Desconectado

Mensajes: 30


Ver Perfil WWW
Re: Evitar inyeccion SQL en mysql y redireccionar
« Respuesta #10 en: 17 Marzo 2010, 16:05 »

Muchas gracias por la ayuda a todos.

ejejeje si bueno queria saber como saltar un alert, pero mejor el redireccionamiento a la index.

Saludos...
En línea
ZaPa

Desconectado Desconectado

Mensajes: 36


Ver Perfil
Re: Evitar inyeccion SQL en mysql y redireccionar
« Respuesta #11 en: 17 Marzo 2010, 17:50 »

Hola.

Yo para hacer lo que tu comentas lo que hago es hacerme 1 función sencillita, con un for que recorre la cadena y verifica si ahi algun caracter "raro".

Esta función no contiene funciones especificas de php y es como diria yo "estandar" jeje.

Aqui tienes, (esta función la tendrias que llamar antes del procesamiento de datos para verificar si te intentan inyectar sql inyection).

Código:
function verificarsql($valor) {
 for(int $i=0;$i<=strlen($valor);$i++)
  if($valor[$i]=='-' || $valor[$i]=='=') {
   echo '<script>alert("No se admiten caracteresespeciales");location.href="PAGINA     A REDIRECCIONAR";</script>';
  }

}


Pero realmente esa función no es muy efectiva que digamos (se puede saltar facilmente).

Lo que podrias hacer es que, las contraseñas solo contengan números y verificar con una función si alguna letra escrita es diferente a un número, (con esta función):

Código:
function verificarcaracter($valor) {
 for(int $i=0;$i<=strlen($valor);$i++)
  if($valor[$i]<0 || $valor[$i]>9)
    echo '<script>alert("No se admiten estos caracteres.");location.href="pagina a redireccionar";</script>';


}



Yo te recomendaria la 2º opción, pero tiene un inconveniente y es que las contraseñas solamente las podrias almacenar númericas (solamente números).
--------------------------------
Explicación código:

1º Función: lo que hace esta función es recorrer todos los caracteres de la cadena que le pasamos como parametro ($valor) y verificar si se encuentra algun caracter (-) o un signo igual (=) devolver un error y redireccionar a la página que queramos.

2º Función: Lo que hace esta función es recorrer todos los carácteres de la cadena que le pasamos como parámetro ($valor) y verificar si se encuenta algun caracter. Ya que las contraseñas solamente contendran números.
---------------------------------------------


Ya se que el código puede mejorarse con funciones como htmlentities() y demás funciónes de php para manejar los caracteres "raros" pero a mi me gusta hacerme funciones "de toda la vida" y no elegir funciones especificas de un lenguaje...


NOTA: Debes de cambiar en el location.href= el texto de REDIRECCIONAR PAGINA, al fichero que quieres redireccionar despues del error.

-----------------------------------------------------------------------------------------
Añado:


La redirección utilizando la función header() de php, como ha dicho el usuario (fede_cp) es muy buena opción, pero tiene un pero, y el pero es el siguiente:

Esta función te dará error si la insertas despues de varias lineas de código de php. ¿Porque? pues porque los "headers" de la página ya se habran enviado al servidor, y la función header() no funcionará, ya que, el script en php, te dará un warning diciendote que los headers ya han sido enviados, que no se pueden modificar ya que han sido enviados.

¿A que se traduce esto? A que no redireccionaria.

Por este caso, utilizo yo location.href de javascript para redireccionar, ya que, el 95% de los navegadores actuales tienen javascript activado por defecto y muy poca gente (por no decir ningúna) no desactiva javascript, asi que, no tendrias problemas.
---------------------------------------------------------------------------------------------


Estas funciónes aún se le puede meter más azucar para que sea más dulce jeje...

Se pueden modificar para que, cuando detecte una inyección de ese tipo, guarde la ip del visitante ($_SERVER['REMOTE_ADDR']), en un fichero de texto o base de datos para ver si la misma persona intenta atacarte varias veces y tomar medidas. Incluso, al detectar
ese tipo de inyección te podria enviar un correo, avisandote de que
tal ip te esta intentando hackear.

Si necesitas la función más "azucarada" jeje, dimelo y te la posteo aqui en 5 minutitos.

Ya me cuentas!
Saludos.
« Última modificación: 17 Marzo 2010, 18:02 por ZaPa » En línea
asasasaq

Desconectado Desconectado

Mensajes: 30


Ver Perfil WWW
Re: Evitar inyeccion SQL en mysql y redireccionar
« Respuesta #12 en: 17 Marzo 2010, 23:32 »

Muchas gracias ZaPa muy buena tu explicacion y la de todos que me han prestado su ayuda.

Saludos.
En línea
Shell Root


Desconectado Desconectado

Mensajes: 2.456


Alex Jurado


Ver Perfil WWW
Re: Evitar inyeccion SQL en mysql y redireccionar
« Respuesta #13 en: 17 Marzo 2010, 23:44 »

Código:
function verificarcaracter($valor) {
 for(int $i=0;$i<=strlen($valor);$i++)
  if($valor[$i]<0 || $valor[$i]>9)
    echo '<script>alert("No se admiten estos caracteres.");location.href="pagina a redireccionar";</script>';


}
What The Fuck!
Código
if($valor[$i]<0 || $valor[$i]>9)
//Si ($valor[$i] es menor a cero Ó $valor[$i] es mayor a nueve)

Creo que si quieres hacer eso <aunque prefiero la de WHK>, usa la función is_numeric. Así:
Código
function verificarCaracterNumerico($intValor){
 for($i=0;$i<=strlen($intValor);$i++){
   if(is_numeric($intValor[$i])){
     return 'SÍ! es Numerico';
   }elseif (!is_numeric($intValor)){
     return 'NO! es Numerico';
   }else{ return 'jejeje WTF!';}
 }//Next
}//End Function
 
$strPoC = 'Shell Root';
echo verificarCaracterNumerico($strPoC);
« Última modificación: 18 Marzo 2010, 00:00 por Alex@ShellRoot » En línea

---
ZaPa

Desconectado Desconectado

Mensajes: 36


Ver Perfil
Re: Evitar inyeccion SQL en mysql y redireccionar
« Respuesta #14 en: 18 Marzo 2010, 00:05 »

Hola de nuevo a todos.


Si, para hacer eso mismo se que esta la función is_numeric(),pero como he dicho anteriormente, me gusta hacer las cosas lo más puras posible, es decir, si puedo evitar utilizar funciones de un propio lenguaje mejor. Asi podré portarlas a otro lenguaje sin muchos cambios.

De todas formas la 2º funcion (comprobar si añadimos carácter) es muy buena opción.

Saludos.
En línea
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Inyeccion SQL en mysql 3.X
Nivel Web
Cleantesdeasso 0 654 Último mensaje 8 Diciembre 2011, 10:21
por Cleantesdeasso
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines