html injection tutorial
Una mirada en profundidad a la inyección HTML:
Para tener una mejor percepción de la inyección HTML, primero debemos saber qué es HTML.
HTML es un lenguaje de marcado, donde todos los elementos del sitio web están escritos en las etiquetas. Se utiliza principalmente para crear sitios web. Las páginas web se envían al navegador en forma de documentos HTML. Luego, esos documentos HTML se convierten en sitios web normales y se muestran a los usuarios finales.
Este tutorial le dará una descripción completa de la inyección de HTML, sus tipos y medidas preventivas junto con ejemplos prácticos en términos simples para su fácil comprensión del concepto.
Lo que vas a aprender:
- ¿Qué es la inyección de HTML?
- Tipos de inyección HTML
- ¿Cómo se realiza la inyección de HTML?
- ¿Cómo probar contra la inyección de HTML?
- ¿Cómo prevenir la inyección de HTML?
- Comparación con otros ataques
- Conclusión
- Lectura recomendada
¿Qué es la inyección de HTML?
La esencia de este tipo de ataque de inyección es inyectar código HTML a través de las partes vulnerables del sitio web. El usuario malicioso envía código HTML a través de cualquier campo vulnerable con el propósito de cambiar el diseño del sitio web o cualquier información que se muestre al usuario.
Como resultado, el usuario puede ver los datos enviados por el usuario malintencionado. Por lo tanto, en general, HTML Injection es solo la inyección de código de lenguaje de marcado al documento de la página.
Los datos que se envían durante este tipo de ataque de inyección pueden ser muy diferentes. Pueden ser algunas etiquetas HTML, que solo mostrarán la información enviada. Además, puede ser todo el formulario o la página falsos. Cuando ocurre este ataque, el navegador generalmente interpreta los datos del usuario malicioso como legítimos y los muestra.
Cambiar la apariencia de un sitio web no es el único riesgo que conlleva este tipo de ataque. Es bastante similar al ataque XSS, donde el usuario malintencionado roba las identidades de otras personas. Por lo tanto, el robo de la identidad de otra persona también puede ocurrir durante este ataque de inyección.
Tipos de inyección HTML
Este ataque no parece ser muy difícil de entender o realizar, ya que HTML se considera un lenguaje bastante simple. Sin embargo, existen diferentes formas de realizar este tipo de ataque. También podemos distinguir diferentes tipos de esta inyección.
En primer lugar, los diferentes tipos pueden clasificarse según los riesgos que conllevan.
Como se mencionó, este ataque de inyección se puede realizar con dos propósitos diferentes:
- Para cambiar la apariencia del sitio web mostrado.
- Robar la identidad de otra persona.
Además, este ataque de inyección se puede realizar a través de diferentes partes del sitio web, es decir, campos de entrada de datos y el enlace del sitio web.
Sin embargo, los principales tipos son:
- Inyección de HTML almacenado
- Inyección de HTML reflejado
# 1) Inyección de HTML almacenado:
La principal diferencia entre esos dos tipos de inyección es que el ataque de inyección almacenada ocurre cuando el código HTML malicioso se guarda en el servidor web y se ejecuta cada vez que el usuario llama a una función adecuada.
Sin embargo, en el caso del ataque por inyección reflejado, el código HTML malicioso no se almacena permanentemente en el servidor web. La inyección reflejada ocurre cuando el sitio web responde inmediatamente a la entrada maliciosa.
# 2) Inyección de HTML reflejado:
Esto se puede dividir nuevamente en más tipos:
- GET reflejado
- POST reflejado
- URL reflejada
El ataque de inyección reflejada se puede realizar de manera diferente según los métodos HTTP, es decir, GET y POST. Me gustaría recordar que con el método POST se envían datos y con el método GET se solicitan datos.
Para saber qué método se utiliza para los elementos adecuados del sitio web, podemos verificar la fuente de la página.
Por ejemplo , un evaluador puede verificar el código fuente del formulario de inicio de sesión y encontrar qué método se está utilizando para ello. Luego, se puede seleccionar el método de inyección HTML apropiado en consecuencia.
c ++ amplitud primera búsqueda
Inyección GET reflejada ocurre, cuando nuestra entrada se muestra (refleja) en el sitio web. Supongamos que tenemos una página simple con un formulario de búsqueda, que es vulnerable a este ataque. Luego, si escribiéramos cualquier código HTML, aparecerá en nuestro sitio web y, al mismo tiempo, se inyectará en el documento HTML.
Por ejemplo, ingresamos texto simple con etiquetas HTML:
Inyección de HTML POST reflejada es un poco más difícil. Ocurre cuando se envía un código HTML malicioso en lugar de los parámetros correctos del método POST.
Por ejemplo , tenemos un formulario de inicio de sesión, que es vulnerable al ataque HTML. Los datos ingresados en el formulario de inicio de sesión se envían con el método POST. Luego, si escribimos cualquier código HTML en lugar de los parámetros correctos, se enviará con el método POST y se mostrará en el sitio web.
¿Cómo puedo reproducir archivos SWF?
Para realizar un ataque de HTML POST reflejado, se recomienda utilizar un complemento de navegador especial, que falsificará los datos enviados. Uno de ellos es el complemento de Mozilla Firefox 'Tamper Data'. El complemento se hace cargo de los datos enviados y permite al usuario cambiarlos. Luego, los datos modificados se envían y se muestran en el sitio web.
Por ejemplo, si usamos un complemento de este tipo, enviaremos el mismo código HTML o el código del formulario de búsqueda, si desea probar con algo más complicado Escriba el texto para buscar Si se muestra un código HTML que se está guardando en alguna parte, el evaluador puede estar seguro de que este ataque de inyección es posible. Entonces se puede probar un código más complicado, por Ejemplo , para mostrar el formulario de inicio de sesión falso. Otra solución es el escáner de inyección HTML. Escanear automáticamente contra este ataque puede ahorrarle mucho tiempo. Me gustaría notificar que no hay muchas herramientas para las pruebas de inyección de HTML en comparación con otros ataques. Sin embargo, una posible solución es la aplicación WAS. WAS se puede nombrar como un escáner de vulnerabilidades bastante fuerte, ya que prueba con las diferentes entradas y no solo se detiene con la primera falla. Es útil para las pruebas, tal vez como se menciona en el complemento del navegador anterior 'Tamper Data', recibe los datos enviados, permite que el evaluador los cambie y los envía al navegador. También podemos encontrar algunas herramientas de escaneo en línea, donde solo tiene que proporcionar el enlace del sitio web y se realizará el escaneo contra el ataque HTML. Cuando se complete la prueba, se mostrará el resumen. Me gustaría comentar que al seleccionar una herramienta de escaneo, debemos prestar atención a cómo analiza los resultados y si es lo suficientemente precisa o no. Sin embargo, debe tenerse en cuenta que las pruebas manuales no deben olvidarse. De esta manera podemos estar seguros de qué entradas exactas se prueban y qué resultados exactos estamos obteniendo. Además, de esta manera también es más fácil analizar los resultados. De mi experiencia en una carrera de pruebas de software, me gustaría comentar que para ambas formas de prueba debemos tener un buen conocimiento de este tipo de inyección. De lo contrario, sería difícil seleccionar una herramienta de automatización adecuada y analizar sus resultados. Además, siempre se recomienda no olvidarse de probar manualmente, ya que solo nos hace estar más seguros de la calidad. No hay duda de que el motivo principal de este ataque es la falta de atención y desconocimiento del desarrollador. Este tipo de ataque de inyección ocurre cuando la entrada y la salida no se validan correctamente. Por lo tanto, la regla principal para evitar un ataque HTML es la validación de datos adecuada. Cada entrada debe comprobarse si contiene algún código de secuencia de comandos o código HTML. Por lo general, se comprueba si el código contiene algún script especial o corchetes HTML -,. Hay muchas funciones para comprobar si el código contiene corchetes especiales. La selección de la función de verificación depende del lenguaje de programación que esté utilizando. Debe recordarse, que bueno pruebas de seguridad también es parte de la prevención. Me gustaría prestar atención, ya que como el ataque de inyección de HTML es muy raro, hay menos literatura para aprender sobre él y menos escáner para seleccionar para las pruebas automáticas. Sin embargo, esta parte de las pruebas de seguridad realmente no debe perderse, ya que nunca se sabe cuándo puede suceder. Además, tanto el desarrollador como el evaluador deben tener un buen conocimiento de cómo se realiza este ataque. Un buen conocimiento de este proceso de ataque puede ayudar a prevenirlo. En comparación con los otros posibles ataques, este ataque definitivamente no se considerará tan riesgoso como Inyección SQL o Ataque de inyección de JavaScript o incluso XSS puede ser. No destruirá toda la base de datos ni robará todos los datos de la base de datos. Sin embargo, no debe considerarse insignificante. Como se mencionó anteriormente, el propósito principal de este tipo de inyección es cambiar la apariencia del sitio web mostrado con fines maliciosos, mostrando la información o los datos enviados al usuario final. Estos riesgos pueden considerarse menos importantes. Sin embargo, cambiar la apariencia del sitio web puede costar la reputación de su empresa. Si un usuario malintencionado destruye la apariencia de su sitio web, puede cambiar las opiniones del visitante sobre su empresa. Cabe recordar que otro riesgo que conlleva este ataque al sitio web es el robo de la identidad de otro usuario. Como se mencionó, con HTML Injection, el usuario malintencionado puede inyectar toda la página, que se mostrará al usuario final. Luego, si el usuario final indicará sus datos de inicio de sesión en la página de inicio de sesión falsa, se enviará al usuario malintencionado. Este caso es, por supuesto, la parte más riesgosa de este ataque. Cabe mencionar que para el robo de datos de otros usuarios, este tipo de ataque se selecciona con menos frecuencia, ya que existen muchos otros posibles ataques. Sin embargo, es muy similar al ataque XSS, que roba las cookies del usuario y las identidades de otros usuarios. También hay ataques XSS, que se basan en HTML. Por lo tanto, las pruebas contra ataques XSS y HTML pueden ser muy similares y realizarse juntas. Como HTML Injection no es tan popular como otros ataques, puede considerarse menos riesgoso que otros ataques. Por lo tanto, a veces se omiten las pruebas contra este tipo de inyección. Además, es notable que definitivamente hay menos literatura e información sobre la inyección de HTML. Por lo tanto, los evaluadores pueden decidir no realizar este tipo de pruebas. Sin embargo, en este caso, es posible que los riesgos de ataque HTML no se evalúen lo suficiente. Como hemos analizado en este tutorial, con este tipo de Inyección se puede destruir todo el diseño de su sitio web o incluso se pueden robar los datos de inicio de sesión del usuario. Por lo tanto, es muy recomendable incluir la inyección de HTML en las pruebas de seguridad e invertir buenos conocimientos. ¿Ha encontrado alguna inyección HTML típica? No dude en compartir sus experiencias en la sección de comentarios a continuación. ¿Cómo prevenir la inyección de HTML?
Comparación con otros ataques
Conclusión
Lectura recomendada