Hoy, Ataques de inyección son un problema importante y encabezan la lista de vulnerabilidades. Hay buenas razones para esto. Son peligrosos. Ataques de inyección explotar varias vulnerabilidades para entregar entradas de usuarios no confiables, que luego es ejecutado por la aplicación web. Por eso son una amenaza para la industria de aplicaciones web..
Usando el método de inyección, un atacante puede inyectar diferentes tipos de programas. La entrada se interpreta, entonces el sistema operativo lo percibe como un comando y lo ejecuta. Esto genera resultados incorrectos y datos corruptos y ejecuta código malicioso., y ejecuta virus desde debajo de un regular, aplicación legítima. Por aquí, un intruso puede obtener datos confidenciales que no debería obtener. Porque este método es el más antiguo., la mayoría de los atacantes lo usan.
Antes de echar un vistazo más de cerca a los tipos populares de ataques de inyección, averigüemos qué ataques de inyección son? El término «inyección» puede reflejar el método de ataque a la seguridad cibernética. Así como la inyección de un medicamento líquido ingresa al cuerpo, En un ataque a una computadora, los atacantes transmiten algunos datos para recuperar información.. Esta inyección proviene principalmente de actores de amenazas cuyo objetivo es causar daño y robar datos o incluso cifrar los archivos..
✅ Inyección de código
Este es un típico ataque de inyección.. Supongamos que el atacante conoce el lenguaje de programación., la aplicación web, el sistema operativo de base de datos, etc.. En ese caso, es fácil inyectar el código mediante la entrada de texto y pasarlo al servidor web. inyección de código apunta a aplicaciones que carecen de validación de entrada.
El usuario puede escribir cualquier cosa., por lo que la aplicación se vuelve potencialmente vulnerable. Un hacker puede inyectar código malicioso, y el servidor le dejará hacerlo. Las vulnerabilidades del código de inyección no son difíciles de encontrar; necesitas proporcionar contenido diferente, entonces el atacante lo colocará en la misma aplicación web. Si el hacker explota las vulnerabilidades, confidencialidad, disponibilidad, integridad, etc., puede estar perdido.
✅ Inyección SQL
Este es un tipo similar de inyección., pero aquí el attacker attacks SQL scripts. SQL es el lenguaje utilizado al ejecutar consultas en un campo de entrada de texto determinado. Dicho script debe ingresar a una aplicación que realizará operaciones directamente en la base de datos.. El hacker también necesita pasar la pantalla de inicio de sesión., y a veces necesita hacer cosas aún más peligrosas para leer datos confidenciales de la base de datos.. Esto también significa que el atacante tiene que realizar la acción nuevamente.. Las aplicaciones PHP y ASP son más vulnerables, entonces las posibilidades de éxito Ataque de inyección SQL son mas altos. J2EE y ASP.Net son más inmunes a este ataque, pero aún no es invencible. Ni siquiera puedes imaginar lo limitadas que son las habilidades y la imaginación del atacante..
✅ Inyección de comandos
Éste type of attack se espera razonablemente si no se implementa una validación suficiente. En lugar de programar código o script, Los atacantes insertan un comando en el sistema.. Es posible que el hacker no conozca el lenguaje de programación en algunos casos, pero puede identificar rápidamente el sistema operativo del servidor.. Hay varios sistemas insertados en los que el sistema operativo ejecuta comandos., permitiendo así el contenido expuesto por archivos arbitrarios que residen en el servidor. Comparado con otros, También muestra la estructura del directorio para cambiar la contraseña del usuario.. Para reducir these types of cyber attacks, un administrador de sistemas debe limitar el nivel de acceso al sistema donde las aplicaciones web pueden ejecutar el servidor.
✅ Secuencias de comandos entre sitios
Cuando se inserta algo, la salida se genera automáticamente sin codificación ni verificación. Esto permite a un atacante la capacidad de enviar código malicioso a otro usuario final.. En esta aplicación, Los atacantes tienen la capacidad de inyectar scripts maliciosos en un sitio web confiable.. Como resultado, ese sitio se convierte en víctima de los atacantes.
Sin notar nada, El navegador de la víctima comienza a ejecutar el script malicioso.. Al hacerlo, el navegador obtiene acceso a los tokens de sesión, información sensible, galletas, etc.. Estos ataques XSS se dividen en dos categorías – almacenado y reflejado. en almacenado, Los scripts maliciosos se dirigen al servidor a través de un foro de mensajes o un registro de visitantes.. En este caso, la víctima también recibe una solicitud del navegador desde el foro de mensajes. En el XSS reflejado, el script malicioso da una respuesta que envía datos de entrada al servidor. También puede ser un mensaje de error del servidor..
✅ Inyección XPath
Como inyección SQL, XPath Ataques de inyección ocurren cuando un sitio web utiliza información proporcionada por el usuario para crear una consulta XPath para datos XML. Al enviar información deliberadamente corrupta al sitio web, el hacker puede aprender la estructura de datos XML u obtener acceso a datos a los que no debería tener acceso. Un hacker puede incluso elevar sus privilegios en un sitio web si se utilizan datos XML para la autenticación. (p.ej., un archivo de usuario basado en XML).
XPath es un lenguaje estándar que le permite especificar atributos dondequiera que los encuentre. Se utiliza para consultar datos XML y otras aplicaciones web que especifican datos., y deben coincidir. Cuando recibes la entrada con formato incorrecto, este patrón temporal se convertirá en una operación para que un atacante pueda aplicar los datos.
✅ Inyección de comando de correo
Esta aplicación incluye aserciones IMAP o SMTP que verifican incorrectamente los datos ingresados por el usuario. Como resultado, no tienen una protección sólida contra ataques, y la mayoría de los servidores web pueden ser explotables. Una vez que los atacantes han ingresado a través del correo electrónico, evitan las restricciones de captcha y los números de solicitud restringidos. Necesitan una cuenta de correo electrónico válida para poder enviar mensajes para inyectar comandos.. Típicamente, Estas inyecciones se pueden realizar en una aplicación de correo web que pueda aprovechar la funcionalidad de lectura de mensajes..
✅ Inyección CRLF
La combinación adecuada de CRLF es un retorno de carro y un avance de línea.. Es un formulario web que representa un método de ataque.. Tiene muchos protocolos de Internet tradicionales como HTTP., NNTP o MIME. Este ataque a menudo se basa en una aplicación web vulnerable y no realiza el filtrado adecuado para el usuario.. Aquí, la vulnerabilidad ayuda a abrir una aplicación web que no realiza el filtrado adecuado.
✅ Inyección de encabezado de host
Hay muchos sitios web o aplicaciones en este servidor donde es necesario identificar un sitio web o una aplicación web residente.. Todo el mundo tiene un servidor virtual que maneja una solicitud entrante.. Así que, el servidor actúa como un host virtual que puede enviar la solicitud. Si el servidor recibe un encabezado de host no válido, normalmente pasa el primer host virtual. Típicamente, Los atacantes utilizan esta vulnerabilidad para enviar encabezados de host arbitrarios.. Si bien la manipulación del encabezado del host está directamente relacionada con la aplicación PHP, otras tecnologías de desarrollo web también lo hacen. Los ataques de encabezado de host funcionan de manera similar a otros tipos de ataques, como el envenenamiento de la caché web, y las consecuencias también incluyen todo tipo de cosas que hacen los atacantes, como restablecer contraseñas.
✅ Inyección LDAP
Este es probablemente uno de los mejores diseños de protocolo que facilita el trabajo con otra red.. Esta es una intranet útil donde puede utilizar un sistema de inicio de sesión único., y el nombre de usuario y la contraseña se almacenarán aquí. Pero es importante recordar que también hay más peligro por parte de los diferentes types of password attacks. Esta petición LDAP conlleva un carácter de control especial que afecta a su gestión.. Un atacante puede cambiar el comportamiento previsto de LDAP, que puede controlar este símbolo. También puede tener varios problemas de raíz que permiten un ataque de inyección LDAP que no se verifica correctamente.. El usuario envía un texto a la aplicación de la que forma parte la solicitud LDAP., y llega sin ser sanitizado.
✅ Inyección XXE
Este tipo de incrustación proporciona una vulnerabilidad al compilar un objeto XML externo. (XXE). Utilizó soporte donde proporcionó una DTD con seguridad débil del analizador XML.. Un atacante podría usar fácilmente los documentos XML creados para ejecutar varios ataques en los que tendría ejecución remota de código desde el recorrido de la ruta hasta SSRF.. Como los otros cuatro ataques, no utilizó entradas de usuario no verificadas y es inherentemente inseguro. La única forma de evitar la vulnerabilidad que deshabilita el soporte DTD es procesar la aplicación en documentos XML..
Prevención de ataques de inyección
Casi todos los ataques de inyección enumerados anteriormente se basan en la ejecución de entradas no confiables por parte de la aplicación web. No es sorprendente, Se clasifica la validación de entrada incorrecta. #4 en la parte superior de la CE 25 lista. Limpieza cuidadosa, filtración, y la codificación de todas las entradas controladas por el usuario puede ayudar a prevenir la gran mayoría de las vulnerabilidades relacionadas con la inyección.
También es fundamental que los desarrolladores conozcan y utilicen los mecanismos seguros de manejo de entradas que proporcionan los lenguajes y marcos web modernos.. Por ejemplo, Las inyecciones de SQL se evitan fácilmente con consultas parametrizadas o declaraciones preparadas del lado del servidor. (también conocidos como procedimientos almacenados). Y en marcos como React, escribir código que sea vulnerable a XSS solo es posible si se omiten intencionalmente las protecciones integradas.
Todos los ataques se realizan directamente al servidor y todo lo relacionado con el acceso abierto a Internet.. Para prevenir estos ataques, debe actualizarlo con aplicaciones avanzadas y actualizaciones periódicas publicadas por los respectivos proveedores de software. Asimismo, para minimizar la posibilidad de ataques a aplicaciones que cambian con frecuencia y nuevos métodos de ataque, Se recomienda probar periódica y automáticamente todas las aplicaciones web y API con soluciones de prueba de seguridad de aplicaciones integradas directamente en el ciclo de vida de desarrollo..