Prueba de Vulnerabilidades de Inyección SQL para Evitar Poner en Peligro Su Sitio

Prueba de Vulnerabilidades de Inyección SQL para Evitar Poner en Peligro Su Sitio

Prueba de Vulnerabilidades de Inyección SQL para Evitar Poner en Peligro Su Sitio

VALORACIÓN DEL ARTÍCULO:
5/5


Los ataques de SQL Injection suponen un riesgo enorme para las aplicaciones web que dependen de un backend de base de datos para generar contenido dinámico. En este tipo de ataque, los hackers manipulan una aplicación web en un intento de inyectar sus propios comandos SQL en los emitidos por la base de datos. Para ver un ejemplo, vea los Ataques de Inyección SQL a las Bases de Datos. En este artículo, echamos un vistazo a varias formas en las que puede probar sus aplicaciones web para determinar si son vulnerables a los ataques de inyección SQL.

Escaneo automatizado por inyección SQL

Una posibilidad es utilizar un escáner de vulnerabilidades de aplicaciones web automatizado, como WebInspect de HP, AppScan de IBM o Hailstorm de Cenzic. Todas estas herramientas ofrecen formas fáciles y automatizadas de analizar sus aplicaciones web para detectar posibles vulnerabilidades de SQL Injection. Sin embargo, son bastante caros, ya que cuestan hasta $25,000 por asiento.

Pruebas de inyección SQL manuales

¿Qué debe hacer un desarrollador de aplicaciones deficiente? En realidad, puede ejecutar algunas pruebas básicas para evaluar sus aplicaciones web en busca de vulnerabilidades de SQL Injection utilizando nada más que un navegador web. Primero, una palabra de precaución: las pruebas que describimos sólo buscan fallas básicas en la inyección SQL. No detectan técnicas avanzadas y son algo tediosas de usar. Si puede permitírselo, utilice un escáner automático. Sin embargo, si usted no puede manejar esa etiqueta de precio, la prueba manual es un gran primer paso.La manera más fácil de evaluar si una aplicación es vulnerable es experimentar con ataques de inyección inocuos que en realidad no dañarán su base de datos si tienen éxito, pero que le proporcionarán evidencia de que necesita corregir un problema. Por ejemplo, supongamos que usted tiene una simple aplicación web que busca a un individuo en una base de datos y proporciona información de contacto como resultado. Esa página puede usar el siguiente formato de URL:

Podemos asumir que esta página realiza una búsqueda en la base de datos, utilizando una consulta similar a la siguiente:

SELECT phone
> SELECT phone

 directorio FROM 

< >.

Experimentemos un poco con esto. Con nuestra suposición anterior, podemos hacer un simple cambio en la URL que prueba los ataques de inyección SQL:

http://myfakewebsite.com/directory.asp?lastname=chapple&firstname=mike'+AND+(select+count(*)+from+fake)+%3e0+OR+'1'%3d'1 

.

Si la aplicación web no ha sido protegida adecuadamente contra la inyección SQL, simplemente conecta este nombre falso en la sentencia SQL que ejecuta contra la base de datos, lo que resulta en:

SELECT phone

>Seleccionar teléfono

Directorio FROM

.WHERE apellido =’chapple’ y nombre=’mike’<
>.

AND (seleccione count(*) de fake)> 0

.

OR '1'='1'

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.

Notarás que la sintaxis de arriba es un poco diferente a la de la URL original. Nos tomamos la libertad de convertir la variable con codificación URL para sus equivalentes ASCII para que sea más fácil seguir el ejemplo. Por ejemplo, %3d es la codificación URL para el carácter ‘=’. También añadimos algunos saltos de línea para propósitos similares.

Evaluación de los resultados

La prueba se produce cuando se intenta cargar la página web con la URL indicada anteriormente. Si la aplicación web se comporta bien, eliminará las comillas simples de la entrada antes de pasar la consulta a la base de datos. Esto simplemente resultará en una búsqueda extraña para alguien con un nombre que incluya un montón de SQL. Verá un mensaje de error de la aplicación similar al siguiente:

Error: No se ha encontrado ningún usuario con el nombre mike+AND+(select+count(*)+from+fake)+%3e0+OR+1%3d1
.Chapple!

Por otro lado, si la aplicación es vulnerable a la inyección SQL, pasará la sentencia directamente a la base de datos, resultando en una de dos posibilidades. En primer lugar, si su servidor tiene activados los mensajes de error detallados (lo que no debería), verá algo parecido a esto:

Pre>Microsoft OLE DB Provider for ODBC Drivers error <'80040e37'
[Microsoft][ODBC SQL Server Driver][SQL Server]Nombre de objeto inválido ‘falso’.

/directory.asp, línea 13

.

Por otro lado, si su servidor web no muestra mensajes de error detallados, obtendrá un error más genérico, como:

Error interno del servidor
El servidor encontró un error interno o una mala configuración y no pudo completar su solicitud.Si recibe uno de los dos errores anteriores, su aplicación es vulnerable al ataque de inyección SQL. Algunos de los pasos que puede seguir para proteger sus aplicaciones contra los ataques de SQL Injection incluyen:

  • Implementar la comprobación de parámetros en todas las aplicaciones. Por ejemplo, si está pidiendo a alguien que introduzca un número de cliente, asegúrese de que la entrada es numérica antes de ejecutar la consulta.
  • Limite los permisos de la cuenta que ejecuta las consultas SQL. Se aplica la regla del menor privilegio. Si la cuenta utilizada para ejecutar la consulta no tiene permiso para ejecutarla, no tendrá éxito.
  • Utilice procedimientos almacenados (o técnicas similares) para evitar que los usuarios interactúen directamente con el código SQL.

TAMBIÉN TE INTERESA

LG OLED evo M4

LG OLED evo M4: el primer televisor OLED inalámbrico del mundo

Los engorrosos cables. Siempre el lío con los cables de ordenadores, consolas, televisión y demás productos grandes tecnología. LG ha dado un golpe sobre la mesa en el segmento de televisores con su LG OLED evo M4, considerado como la primera tele sin cables. no es solo un televisor; es una declaración de cómo la

monitores Philips para el trabajo

Tres monitores Philips para trabajar de la manera más eficiente

Tres nuevos monitores Philips ven la luz para la gama profesional: el 27B2G5500, el 24B2G5200 y el 27B2G5200. Diseñados para oficinas y espacios de trabajo que buscan tecnología avanzada sin comprometer el medio ambiente, estos modelos destacan por sus prestaciones sostenibles, eficiencia energética y características que mejoran el confort visual de los usuarios. Su diseño

Black Friday 2024

Una media de 5 productos y 242 euros: así compraremos en el Black Friday 2024

El próximo 29 de noviembre, los españoles volverán a lanzarse a las ofertas del Black Friday 2024, un evento ya consolidado como una de las fechas más esperadas para realizar compras, especialmente de cara a la Navidad. Este año, el presupuesto medio que los consumidores planean gastar ha subido a 242 euros, 15 euros más

OPPO A79 5G

OPPO A79 5G, un móvil super equilibrado para una gran variedad de bolsillos

OPPO siempre nos tiene acostumbrados a móviles accesibles dotados con excelentes componentes para dar un buen rendimiento. Estas condiciones son las que reúna el OPPO A79 5G, un smartphone que eleva el estándar en experiencias audiovisuales y funcionalidad. Diseñado para destacar tanto por su aspecto como por su rendimiento, este dispositivo promete satisfacer las demandas

Meteored

La app española Meteored es la cuarta aplicación del tiempo más vista en el mundo

En un sector dominado por líderes históricos como The Weather Channel, Accuweather y DarkSky (Apple), la española Meteored ha escalado al top 5 global de aplicaciones de meteorología, consolidándose como una alternativa de referencia a nivel mundial. Propiedad de la empresa Alpred, Meteored ha logrado este posicionamiento gracias a su compromiso con la precisión, la