WebGoat es una aplicación web J2EE
Enviado por slides80 • 29 de Noviembre de 2018 • Trabajo • 1.418 Palabras (6 Páginas) • 506 Visitas
Actividad III: Realizar ataques SQL Injection a DVWA
Materia: Análisis de Vulnerabilidades
Alumno: Alejandro Ramon Murguia Gonzalez
Grupo: 22
Resumen:
El propósito del documento realizar tres diferentes tipos de ataques por medio de WebGoat los ataques en cuestión serán: Command Injection; String SQL Injection; Blind String SQL Injection
Introducción:
WebGoat es una aplicación web J2EE deliberadamente insegura, mantenida por OWASP y diseñada para enseñar lecciones de seguridad en aplicaciones Web. En cada lección, los usuarios deben demostrar su entendimiento de los problemas de seguridad al explotar la vulnerabilidad real en la aplicación WebGoat.
Para iniciar con los tres ejercicios anteriormente mencionados se deberán de realizar ciertos preparativos:
Primero se deberá de obtener la aplicación de WebGoat, la cual se ubica en: https://github.com/WebGoat/WebGoat/releases una vez descargada se deberá de ejecutar con el comando “Java –jar webgoat-container-7.1-exec.jar” lo que iniciará la aplicación
Una vez iniciada se deberá de abrir un navegador, en la barra de navegación deberemos de ingresar la siguiente dirección “ http://localhost:8080/WebGoat”
Ya con la aplicación iniciada procederemos a realizar las actividades:
Command Injection
La inyección de comandos es un ataque en el cual el objetivo es la ejecución de comandos arbitrarios en el sistema operativo host a través de una aplicación vulnerable. Los ataques de inyección de comandos son posibles cuando una aplicación pasa datos inseguros proporcionados por el usuario (formularios, cookies, encabezados HTTP, etc.) a un shell del sistema. En este ataque, los comandos del sistema operativo suministrados por el atacante generalmente se ejecutan con los privilegios de la aplicación vulnerable. Los ataques de inyección de comandos son posibles en gran parte debido a la validación de entrada insuficiente.
WebGoat ofrece un ambiente vulnerable que permite la inyección del código, la tarea será insertar un comado del sistema operativo Linux para que se ejecute, el ejercicio nos muestra una pagina web la cual cuenta con un campo tipo lista el cual al oprimir el botón view ejecuta un comando para visualizar el contenido de cada tópico de la lista, el reto es como insertar el código para ello deberemos de interceptar el contenido de los mensajes GET y POST que utiliza la página para ello utilizaremos la aplicación Webscarab, otra herramienta proporcionada por OWASP pero para poder utilizarla deberemos de hacer ciertos ajustes primero ejecutar Webscarab y activar la funcionalidad de interceptar peticiones
[pic 2]
Posteriormente se tendrá que declarar en el navegador que existe un proxi (que será webscarab) por lo cual declararemos el puerto 8008 puesto que es el puerto por defecto del webscarab
[pic 3]
Al oprimir el botón de “View” automáticamente nos aparecerá una pantalla de webscarab la cual nos mostrará el campo variable que es el punto vulnerable que permitirá conducir el ataque
[pic 4][pic 5]
La petición que percibe webscarb es POST. El concepto POST es enviar información desde el cliente para que sea procesada y actualice o agregue información en el servidor, como sería la carga o actualización en si de un artículo, por lo que utilizaremos esto para alterar el valor de la variable que se ejecutará, para ello se utilizarán los caracteres “ y& para insertat los comandos a ejecutarse “ creará permitirá que la variable interprete como valido la ejecución del comando en este caso netsat y ls o ls
Una vez realizado la inserción de la cadena “ & netstat –an & ls” o bien %22 + %26 +netstat+ -an + %26
Daremos click en aceptar los cambios lo que webscarab realzará la inyección de la información de la variable lo que provocará la ejecución del comando en webgoat
[pic 6]
Por alguna extraña razón en kali Linux webgoat maneja error al invocar, se revisó la documentación y parece un fallo en la versión, puesto que en 5.3 parece funcionar sin problemas.
[pic 7]
String SQL Injection
Un ataque de inyección SQL consiste en la inserción o "inyección" de una consulta SQL a través de los datos de entrada del cliente a la aplicación. Un exploit de inyección SQL exitoso puede leer datos sensibles de la base de datos, modificar datos de base de datos (Insertar / Actualizar / Eliminar), ejecutar operaciones de administración en la base de datos (como apagar el DBMS), recuperar el contenido de un archivo dado presente en el archivo DBMS sistema y, en algunos casos, emitir comandos al sistema operativo. Los ataques de inyección SQL son un tipo de ataque de inyección, en el que los comandos SQL se inyectan en la entrada del plano de datos para efectuar la ejecución de comandos SQL predefinidos. Como se revisó en clase esto se puede lograr “engañando” la sintaxis de la consulta mandando caracteres que en caso de que el campo de la aplicación no cuente con métodos de validación se interpretarán como parte de la consulta.
...