Las aplicaciones web han traído consigo nuevas clases de vulnerabilidades de seguridad informática, como la inyección de SQL. Es una clase de vulnerabilidades basadas en la validación de entrada. Usos típicos de la información confidencial de la inyección de SQL de una base de datos, la lógica de autenticación de bypass o agregar cuentas no autorizadas a una base de datos. Esta seguridad evita el acceso no autorizado a su base de datos y también evita que sus datos sean alterados o eliminados por los usuarios sin los permisos apropiados. El detector de texto malicioso, la validación de restricciones, la validación de la longitud de la consulta y el generador de claves basado en texto son los cuatro tipos de técnica de filtración utilizada para detectar y evitar que los ataques de inyección SQL accedan a la base de datos.
Estamos haciendo este proyecto en Ubuntu
Detectaremos la inyección SQL en el servidor proxy para aumentar el nivel de seguridad. Como NGINX es más rápido y más fácil de usar, lo usaremos como servidor proxy. Nuestra aplicación web se ejecutará en Apache Server.
Entonces, a medida que el tráfico del navegador llegará al servidor NGINX, configuraremos sus puertos
Agregue el archivo webproxy desde el repositorio a /etc/nginx/sites-enabled .
Agregue WebProxy a sitios habilitados de Nginx. Aquí hemos enrutado el tráfico HTTP a través del servidor NGINX al puerto 8080.
Ahora actualizaremos el puerto de Apache Server del servicio HTTP. Actualizar el archivo de ports.conf de este repositorio en /etc/apache2/ también actualice el archivo 000-default.conf de este repositorio en /etc/apache2/sites-enabled .
Reemplace la carpeta html de este repositorio a /var/www/ carpeta. Ejecutar bank.sql para crear una base de datos en MySQL. (Crediantials para MySQL: Nombre de usuario: Root Password: Root)
Aquí hemos agregado la solicitud bancaria
service nginx start
service apache2 startCompruebe si el servidor NGINX está configurado en el puerto no. 80 y Apache Server está configurado en el puerto no. 8080.
Vaya a localhost:8080/bank/login.html . Ingrese el nombre de usuario como AA e inyectar contraseña como 'o' y '=' y
Ahora puede ver bases de datos completas.
Vaya a localhost/bank/login.html . Ingrese el nombre de usuario como AA e inyectar contraseña como 'o' y '=' y
Ahora no puede ver bases de datos completas y tampoco puede inyectarlo con otra consulta.
Cuando las credenciales de usuario se ingresan en el sistema Vulnerable, se pasan directamente al software de la base de datos. Pero si proporcionamos validación de entrada antes de llegar a la aplicación web, como en el servidor proxy, podemos reducir la carga en Apache Server y procesarla eficientemente en un servidor NGINX más rápido .
Por lo tanto, he compilado todas las palabras clave MySQL utilizadas para el ataque de inyección SQL y les asigné pesos de modo que todas las entradas se validen y verifiquen los ataques.
Como tal, se evita el ataque de inyección SQL.
Autor y creador: Jayant Rane