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

all ia

all ia, el primer buscador de herramientas de inteligencia artificial

Ha llegado el punto en que uno ya se pierde con las herramientas de inteligencia artificial. A lo largo de este último año han surgido infinidad de soluciones que se distribuyen en todos los rincones de internet. Se podría decir que hay una para cada inquietud, sea a nivel personal en el terreno profesional. Pero

login-y-contraseña

El método definitivo para tener una contraseña segura: 9 pasos

Tener una contraseña segura es el primer paso para tener cierta seguridad en nuestra vida digital. Correo electrónico, claves del banco, Amazon, por poner unos ejemplos… son plataformas que estamos acostumbrados a usar casi a diario. Para todos ellos y el resto de plataformas a las que estemos suscritos, la contraseña segura es fundamental para

meta-quest-3

Meta Quest 3: características del nuevo adalid de la realidad virtual

La realidad virtual (VR) ha experimentado un crecimiento exponencial en los últimos años, y Meta Quest 3 se presenta como el pináculo de esta evolución. Como la tercera generación de dispositivos de realidad virtual autónomos desarrollados por Meta, anteriormente conocida como Facebook, el Meta Quest 3 representa una amalgama de tecnología de vanguardia y diseño

Wacom-Movink

Wacom Movink, el panel interactivo OLED más fino y ligero del mercado

Parecía estar ya todo escrito sobre monitores y panales y en éstas, llega el Wacom Movink para sorprendernos a todos. Dirigido especialmente para diseñadores y creadores de contenido, esta pantalla representa un avance significativo por su combinación única de rendimiento, portabilidad y calidad visual excepcional. El dispositivo llega acompañado de un nuevo lápiz digital, su