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

nube-personal-BeeStation

BeeStation o cómo crear una nube personal en tu casa en un periquete

La mayoría de los usuarios de dispositivos móviles utilizan uno más servicios de cloud disponibles en el mercado para el almacenamiento de los archivos. Con la llegada de la nube, el almacenamiento de los móviles y de los equipos informáticos ha pasado a un segundo plano, de manera que ya no es tan importante cuantos

anillo-inteligente-Rikki

Anillo inteligente: dos nuevas propuestas (una ya a la venta y otra en espera)

El anillo inteligente se va haciendo, poco a poco, un hueco en el mercado. Hasta ahora son pocas las referencias que existen, aunque existen algunas destacadas como el Anillo Circular, del que ya hemos hablado en este medio. En el horizonte, empiezan a surgir nuevas propuestas, llamando la atención del desarrollo que prepara Samsung y

presoterapia

La tecnología acerca la presoterapia a los domicilios con nuevos dispositivos

La presoterapia es una técnica terapéutica utilizada en el campo de la medicina estética y la fisioterapia para mejorar la circulación sanguínea y linfática, reducir la retención de líquidos, eliminar toxinas y favorecer la eliminación de la celulitis. Consiste en la aplicación de presión controlada sobre diferentes partes del cuerpo mediante el uso de dispositivos

Apple Vision Pro

Vision Pro: La revolución tecnológica que está conquistando España

Apple Vision Pro es la última revolución en la computación espacial. Integrando contenido digital y el mundo físico, ofrece experiencias de entretenimiento impactantes y captura recuerdos con su primera cámara tridimensional. A pesar de algunas debilidades, ha generado gran expectación en redes sociales y se ha convertido en un fenómeno social único. Descubre sus características,

temu

Temu: chollos y estafas que campan a sus anchas

No son pocos los usuarios que reciben periódicamente anuncios sobre los grandes chollos que se comercializan en Temu. Para quien no lo conozca, Temu es un ecommerce procedente de China que es muy simular a lo que estamos acostumbrados como Amazon, Aliexpress o Miravia.  El catálogo de Temu cuenta con más de 100 categorías de

Samsung-Galaxy-S24

Nace la era de la IA móvil con los nuevos Galaxy S24 de Samsung

Samsung ha presentado a bombo y platillo su nuevos modelos Galaxy S24, con muchas novedades respecto al anterior Galaxy S23. Las tres referencias que llegan al mercado de esta serie flagship de la firma coreana son: el Galaxy S24 Ultra, Galaxy S24+ y Galaxy S24. En todos ellos, la presencia de la inteligencia artificial es