Protéjase de la inyección de SQL con GreenSQL
La inyección SQL es una técnica de hacking que tiene como objetivo golpear a las aplicaciones web que dependen de una base de datos como SQL.
Las consecuencias son imprevisibles para el programador: la inyección SQL permite al atacante para autenticarse con amplios privilegios en las áreas protegidas del sitio (por supuesto, aun sin estar en posesión de credenciales para el acceso) y ver y / o modificar los datos sensibles.
La estructuración de las consultas SQL en una forma particular, en este caso integrado en una dirección web (URL incrustadas), si se pasa a una base de datos SQL con poco control sobre la estructuración de la entrada quesy, que actúa estrechando el servidor para devolver un mensaje error de que el hacker experimentado puede entender como la propia base de datos está estructurado y claro de cómo reformular la consulta para insertar los datos (en lugar de leer ... escribir corto) en la base de datos.
El objetivo final será la de insertar un enlace a una página web que contenga código malicioso: cada vez que la base de datos se carga en un navegador el usuario será redirigido a la página web maliciosa!
Uno de los muchos métodos
GreenSQL es una interesante aplicación que se compromete a proteger una base de datos de cualquier ataque malicioso. Básicamente se trata de un firewall de código abierto que actúa como un filtro entre la red y database.Funziona ll'applicazione como un proxy, la aplicación en lugar de conectarse a la base de datos se conecta a GreenSQL que luego administra la conexión con la propia base de datos.
Básicamente funciona así: si la consulta enviada por la aplicación se considera riesgoso por GreeSQL que no se envía a la base de datos y la GreenSQL aplicación devuelve un resultado nulo. Por otra parte, si la consulta no presenta problemas, fue invitada al servidor y luego responde a trata de aplicaciones web.
La aplicación soporta tres modos:
1.Simulation modo
Comandos sospechoso 2.Blocking
3.Learning modo
Si la solicitud se encuentra en el modo de simulación funciona básicamente como un IDS (Intrusion Detection System). Todas las consultas consideradas dañinas son simplemente registrados y notificados el administrador puede consultar a través de la consola para los administradores.
El bloqueo de comandos sospechosas modo que el sistema funciona como un IPS (Intrusion Prevention System). En este modo, las consultas que no están en la lista blanca se bloquean automáticamente y el programa, el programa devuelve un resultado de la aplicación web nulo. De lo contrario, si la consulta no se considera maligno, se lleva a cabo. Durante este modo, sin embargo, pueden generar falsos positivos o falsos negativos.
Para evitar problemas debido a los dos modos anteriores modo se ha desarrollado el modo de aprendizaje durante el cual el programa se aprenden todas las consultas que la aplicación web puede enviar y los agrega a la lista blanca. Una vez más el modo de aprendizaje que debe ir a uno de los dos métodos mencionados anteriormente, con el fin de tener un mayor nivel de protección.
También puede activar la protección de las consultas desconocido, esta opción le permite bloquear automáticamente los comandos que vienen GreenSQL desconocido.
Para calcular si un comando es ilegal o no utiliza un motor de comparación de patrones que funciona en dos modos. El primero comprueba que la consulta no debe ser enviado para ejecutar comandos administrativos (como GRANT y REVOKE, o los comandos que iba a cambiar la estructura de la base de datos). Pero el otro calcula el riesgo de una consulta basada en métodos heurísticos, por ejemplo, controles de acceso a datos sensibles, los comentarios enviados en la consulta, la cadena debe contener la contraseña vacía tautología (la expresión siempre devuelve true (por ejemplo, 1 = 1)). Si el riesgo es suficientemente alto, la consulta se bloquean automáticamente.
Leer más GreenSQL.net Os dejo con el sitio web oficial.
Otro método
Al leer datos de un formulario como el de un registro, que están en riesgo de inyección de SQL.
La inyección SQL es un procedimiento mediante el cual se puede "inyectar" código SQL de manera ilegal.
Ejemplo
Veamos un ejemplo concreto. Suponga que tiene una tabla de usuarios tiene este aspecto:
Esta es la forma de conexión:
Username: [br].[/br]
Password: [br].[/br][br].[/br]
autenticación
Para leer los siguientes parámetros:
Aquí viene la inyección de SQL. si el nombre de usuario y contraseña por favor, introduzca el código: a 'o' a '=' a la consulta eso es lo que está escrito que dice el usuario
select * from utenti
where
[username] ='a' or 'a'='a' and
[password] ='a' or 'a'='a'
Esto es porque el personaje es interpretado por ASP es el final de la cadena.
En este punto, está claro que la consulta devuelve un conjunto de registros completos de todos los usuarios de bases de datos (que en el ocurrido alguna vez) y nos lleva a ...
Evitar la inyección de SQL
Hay varios métodos para evitar la inyección SQL, te muestran el más inmediato, y en un cierto efecto.
Cuando leemos los valores de la cadena de consulta, basta con sustituir el "carácter de la educación characters''through dos Reemplazar
El resto del código debe ser ajustado.
OTRA MANERA
// Anti-SQL Injection
function check_inject()
{
$badchars = array(";", "'", "\"", "*", "DROP", "SELECT", "UPDATE", "DELETE", "-");
foreach($_POST as $value)
{
if(in_array($value, $badchars))
{
die("SQL Injection Detected\n[br].[/br]\nIP: ".$_SERVER['REMOTE_ADDR']);
**
else
{
$check = preg_split("//", $value, -1, PREG_SPLIT_OFFSET_CAPTURE);
foreach($check as $char)
{
if(in_array($char, $badchars))
{
die("SQL Injection Detected\n[br].[/br]\nIP: ".$_SERVER['REMOTE_ADDR']);
TAMBIEN
ANTIDOOS
#!/bin/sh
MAX_CONN=90
mkdir /tmp/stizzo
TMP_PREFISSO='/tmp/stizzo'
TMP_FILE='ip-abusi'
netstat -ntu -f inet| awk '{if(NR>2 && NF=6) print $5}' | cut -d. -f1-4 | grep '^[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}$' | sort | uniq -c | sort -nr > $TMP_FILE
while read line; do
COR_LINEA_CONN=$(echo $line | cut -d" " -f1)
COR_LINEA_IP=$(echo $line | cut -d" " -f2)
if [ $COR_LINEA_CONN -lt $MAX_CONN ]; then
break
fi
echo $COR_LINEA_IP > $TMP_PREFISSO/abusi
awk '{$1="/sbin/route add -net "$0}1{$2=" 127.0.0.1 -blackhole"}2' $TMP_PREFISSO/abusi > $TMP_PREFISSO/nullr.sh ; sh $TMP_PREFISSO/nullr.sh
done < $TMP_FILE
rm -rf $TMP_PREFISSO
Bueno al que le sirva espero me diga ajjaja si anda no lo e probado aun pero como me paresio importante la comparti sip saludos
Fuente :www.inforge.net