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

ordenador sobremesa Deep Gaming

Deep Gaming, la marca española confiable para personalizar un PC

Como en casi todos los ámbitos, en el mundo del gaming hay dos tipos de personas: los que apuestan un por un PC ya configurado o los que quieren personalizar su PC. Para estos últimos, Deep Gaming es una gran opción para empezar a poner a punto su setup. Hablamos de una marca española con

Qué es un CDN y por qué es relevante

Cómo mejorar la experiencia web con un CDN

Imagínate visitar un sitio web y tener que esperar largos segundos para que se cargue cada página o imagen. Esta experiencia frustrante no solo afecta nuestra paciencia, sino que también puede influir negativamente en la percepción de una marca o empresa. Aquí es donde entra en juego el CDN, o Content Delivery Network, una tecnología

como detectar ofertas de trabajo falsas

Ojo con las ofertas de trabajo falsas: aprende a detectarlas

Las ofertas de trabajo falsas están a la orden del día. En muchos casos parecen reales porque coinciden en un momento en el que estamos en búsqueda activa de empleo. Puede que nos hallamos inscrito a un proceso de selección en LinkedIn y, de repente, alguien intenta contactar con nosotros por mail o WhatsApp. A

portatil gaming HP OMEN 17

Nuevo HP OMEN 17: un portátil gaming grande en todos los sentidos

HP ha lanzado una nueva línea de dispositivos OMEN y HyperX diseñados para ofrecer una experiencia de juego más inmersiva y fluida. Esta nueva gama incluye ordenadores, accesorios, periféricos y software que se adaptan a todo tipo de jugadores, desde profesionales hasta aquellos que están eligiendo su primer PC. Entre las nuevas incorporaciones se encuentran