Compare commits
6 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
27f23fea19 | ||
|
9bd7a81435 | ||
|
08ccb069df | ||
|
2357651570 | ||
|
b25caa5c2f | ||
|
9c354d5699 |
50
src/main/resources/i18n/messages_es.properties
Normal file
50
src/main/resources/i18n/messages_es.properties
Normal file
@ -0,0 +1,50 @@
|
||||
lesson.completed=Felicidades. Has completado con éxito esta lección.
|
||||
assignment.solved=Felicidades. Has completado con éxito la tarea.
|
||||
assignment.not.solved=Lo siento, la solución no es correcta. Por favor, inténtalo de nuevo.
|
||||
RestartLesson=Reiniciar esta lección
|
||||
SolutionVideos=Videos de la solución
|
||||
ErrorGenerating=Error generando
|
||||
InvalidData=Datos inválidos
|
||||
Go!=!Vamos!
|
||||
password=Contraseña
|
||||
password.confirm=Confirmar contraseña
|
||||
username=Nombre de usuario
|
||||
logged_out=Has cerrado sesión correctamente.
|
||||
invalid_username_password=Nombre de usuario y contraseña inválidos.
|
||||
login.page.title=Página de inicio de sesión
|
||||
accounts.build.in=Las siguientes cuentas están integradas en WebGoat
|
||||
accounts.table.account=Cuenta
|
||||
accounts.table.user=Usuario
|
||||
accounts.table.password=Contraseña
|
||||
logout=Cerrar sesión
|
||||
version=Versión
|
||||
build=Compilación
|
||||
report.card=Informe
|
||||
about=Acerca de WebGoat
|
||||
contact=Contáctanos
|
||||
show.hints=Mostrar pistas
|
||||
lesson.overview=Descripción de la lección
|
||||
reset.lesson=Restablecer lección
|
||||
sign.in=Iniciar sesión
|
||||
register.new=o regístrate como un nuevo usuario
|
||||
sign.up=Registrarse
|
||||
register.title=Registro
|
||||
searchmenu=Búsqueda de lecciones
|
||||
|
||||
|
||||
not.empty=Este campo es obligatorio.
|
||||
username.size=Por favor, utiliza entre 6 y 10 caracteres.
|
||||
username.duplicate=El usuario ya existe.
|
||||
password.size=La contraseña debe contener al menos 6 caracteres.
|
||||
password.diff=Las contraseñas no coinciden.
|
||||
security.enabled=Seguridad habilitada, puedes probar los desafíos anteriores y ver el efecto.
|
||||
security.disabled=Seguridad deshabilitada, puedes probar los desafíos anteriores y ver el efecto.
|
||||
termsofuse=Términos de uso
|
||||
register.condition.1=Mientras ejecutas este programa, tu máquina será extremadamente vulnerable a ataques.\
|
||||
Deberías desconectarte de Internet mientras usas este programa. La configuración predeterminada de WebGoat se une a localhost para minimizar la exposición.
|
||||
register.condition.2=Este programa es solo con fines educativos. Si intentas \
|
||||
estas técnicas sin autorización, es muy probable que te descubran. Si \
|
||||
te descubren participando en hacking no autorizado, la mayoría de las empresas te despedirán. \
|
||||
Alegar que estabas realizando investigación de seguridad no funcionará, ya que eso es lo \
|
||||
primero que afirman todos los hackers.
|
||||
terms.agree=Aceptar los términos y condiciones
|
@ -0,0 +1,11 @@
|
||||
== Restablecimiento de contraseña con autenticación de dos factores (2FA)
|
||||
|
||||
Un excelente ejemplo de elusión de autenticación es (https://henryhoggard.co.uk/blog/Paypal-2FA-Bypass). El usuario no pudo recibir un SMS con un código, así que optó por un método alternativo que implicaba preguntas de seguridad. Utilizando un proxy, eliminó por completo los parámetros y tuvo éxito.
|
||||
|
||||
image::images/paypal-2fa-bypass.png[Paypal 2FA bypass,1397,645,style="lesson-image"]
|
||||
|
||||
=== El escenario
|
||||
|
||||
Cuando restableces tu contraseña desde un lugar o dispositivo no reconocido por tu proveedor, te solicitarán responder a las preguntas de seguridad que configuraste. El inconveniente adicional es que estas preguntas de seguridad también están almacenadas en otro dispositivo, que no tienes contigo y del cual no recuerdas las respuestas.
|
||||
|
||||
Ya has proporcionado tu nombre de usuario/correo electrónico y has optado por el método de verificación alternativo.
|
@ -0,0 +1,15 @@
|
||||
== Elusion de Autenticación
|
||||
|
||||
En el contexto de elusiones de autenticación, los atacantes realizan manipulaciones en el sistema con el objetivo de crear las condiciones necesarias para evadir los mecanismos de autenticación. Estas manipulaciones pueden implicar cambios en la configuración o la lógica del sistema, con el fin de aprovechar posibles fallos y eludir las medidas de seguridad establecidas.
|
||||
|
||||
=== Entradas Ocultas
|
||||
|
||||
Una estrategia básica implica confiar en una entrada que se encuentra oculta en la página web o en el Modelo de Objetos del Documento (DOM).
|
||||
|
||||
=== Eliminación de Parámetros
|
||||
|
||||
A veces, si un atacante no conoce el valor correcto de un parámetro en la solicitud web, puede optar por eliminarlo por completo para observar las consecuencias.
|
||||
|
||||
=== Navegación Forzada
|
||||
|
||||
Si una sección de un sitio no está adecuadamente protegida por la configuración, esa sección del sitio puede ser accedida mediante adivinanzas/fuerza bruta.
|
@ -0,0 +1,7 @@
|
||||
=== Más Contenido, También Videos ...
|
||||
|
||||
Puedes estructurar y dar formato al contenido como prefieras. Incluso puedes incluir videos si lo deseas (aunque puede depender del soporte del navegador). Tal vez prefieras que esté más relacionado con la seguridad de las aplicaciones web que el contenido de este.
|
||||
|
||||
video::video/sample-video.m4v[width=480,start=5]
|
||||
|
||||
see http://asciidoctor.org/docs/asciidoc-syntax-quick-reference/#videos for more detail on video syntax
|
@ -0,0 +1,5 @@
|
||||
== Restricciones de Campo
|
||||
En la mayoría de los navegadores, el cliente tiene control total o casi total sobre la parte HTML de la página web. Pueden modificar valores o restricciones según sus preferencias.
|
||||
|
||||
=== Tarea
|
||||
Envía una solicitud que eluda las restricciones de los cuatro campos mencionados.
|
@ -0,0 +1,6 @@
|
||||
== Validación
|
||||
|
||||
A menudo, hay algún mecanismo para evitar que los usuarios envíen valores de campo alterados al servidor, como la validación antes del envío. La mayoría de los navegadores populares, como Chrome, no permiten editar scripts durante la ejecución. Tendremos que eludir la validación de alguna otra manera.
|
||||
|
||||
=== Tarea
|
||||
Envía una solicitud que no cumpla con la expresión regular ubicada encima del campo en todos los campos.
|
@ -0,0 +1,9 @@
|
||||
== Concepto
|
||||
|
||||
Los usuarios tienen un gran control sobre la interfaz del usuario de la aplicación web. Pueden modificar el código HTML, y a veces también los scripts. Las aplicaciones que requieren un formato de entrada específico deben validar también los datos en el lado del servidor.
|
||||
|
||||
== Objetivos
|
||||
|
||||
* El usuario debe tener conocimientos básicos de HTML.
|
||||
* El usuario debe poder manipular una solicitud antes de enviarla (con un proxy u otras herramientas).
|
||||
* El usuario tiene que manipular las restricciones de campo y eludir la validación del lado del cliente.
|
@ -0,0 +1 @@
|
||||
El administrador olvidó dónde se guarda la contraseña, ¿puedes ayudar?
|
@ -0,0 +1 @@
|
||||
¿Puedes iniciar sesión como Larry?
|
@ -0,0 +1 @@
|
||||
¿Puedes iniciar sesión como Tom? Puede ser un poco más difícil que cuando lo hiciste con Larry.
|
@ -0,0 +1 @@
|
||||
Intenta restablecer la contraseña de admin.
|
@ -0,0 +1 @@
|
||||
¿Todavía puedes votar?
|
@ -0,0 +1,24 @@
|
||||
=== Bienvenido al desafío WebGoat (CTF)
|
||||
|
||||
==== Introducción
|
||||
|
||||
Los desafíos contienen lecciones más parecidas a un CTF, donde no proporcionamos explicaciones sobre lo que debes hacer y no se darán pistas. Puedes utilizar estos desafíos en un estilo CTF, donde puedes ejecutar WebGoat en un servidor y todos los participantes pueden unirse y hackear los desafíos. Hay un marcador disponible en el link:scoreboard["scoreboard",window=_blank]
|
||||
|
||||
:hardbreaks:
|
||||
En este CTF, deberás resolver varios desafíos; cada uno te proporcionará una bandera que deberás enviar para obtener puntos.
|
||||
|
||||
Las banderas tienen el siguiente formato: `a7179f89-906b-4fec-9d99-f15b796e7208`
|
||||
|
||||
==== Reglas
|
||||
|
||||
- No intentes hackear la infraestructura de la competición. Si descubres algún error o vulnerabilidad, por favor, envíanos un correo electrónico.
|
||||
|
||||
- Juega limpio, no intentes sabotear a otros equipos competidores ni obstaculizar de ninguna manera el progreso de otro equipo.
|
||||
|
||||
- No se permite el uso de fuerza bruta en desafíos/flags.
|
||||
|
||||
:hardbreaks:
|
||||
*¡Diviértete!*
|
||||
El equipo WebGoat
|
||||
|
||||
image::images/boss.jpg[]
|
@ -0,0 +1,6 @@
|
||||
== ¡Pruébalo! Trabajando con la pestaña de Red
|
||||
|
||||
En esta tarea, debes encontrar una solicitud HTTP específica y leer un número aleatorio.
|
||||
Para comenzar, haz clic en el primer botón. Esto generará una solicitud HTTP. Intenta encontrar la solicitud HTTP específica.
|
||||
La solicitud debería contener un campo: `networkNum:`
|
||||
Copia el número que se muestra después en el campo de entrada a continuación y haz clic en el botón de verificación.
|
@ -0,0 +1,8 @@
|
||||
== ¡Pruébalo! Utilizando la consola
|
||||
|
||||
Vamos a intentarlo. Utiliza la consola en las herramientas de desarrollo y llama a la función de JavaScript *webgoat.customjs.phoneHome()*.
|
||||
Deberías recibir una respuesta en la consola. Tu resultado debería lucir algo así:
|
||||
`phone home dijo
|
||||
{"lessonCompleted:true, ... ,"output":"la respuesta de phone home es..."`
|
||||
Después de eso, pega el número aleatorio en el campo de texto a continuación.
|
||||
(Asegúrate de tener el número más reciente, ya que se genera aleatoriamente cada vez que llamas a la función)
|
@ -0,0 +1,15 @@
|
||||
== La pestaña de la Consola
|
||||
|
||||
En la pestaña de la consola, puedes ver cualquier cosa que un archivo JavaScript cargado haya impreso.
|
||||
No te preocupes si ves algo en rojo. Aunque sea un error, probablemente se haya resuelto por sí mismo.
|
||||
A través de la pestaña de la consola, también puedes ejecutar tu línea de código JavaScript.
|
||||
|
||||
Comienza limpiando la consola con el atajo `CTRL+L`.
|
||||
|
||||
Para ejecutar tu JavaScript, haz clic dentro de la consola y escribe algo como:
|
||||
`console.log("¡Hola WebGoat!");` Presiona Enter. `¡Hola WebGoat!` debería aparecer ahora en tu consola.
|
||||
La consola también te permite hacer algunas operaciones aritméticas básicas. Si escribes, por ejemplo, `1+3` y presionas Enter, la consola debería mostrar 4.
|
||||
|
||||
Nota: Puede que veas un `undefined` en la consola. Puedes ignorar esta declaración de manera segura, solo significa que la función de JavaScript que has llamado no devolvió nada.
|
||||
|
||||
image::images/ChromeDev_Console_Ex.jpg[DeveloperToolsConsoleExample,500,500,style="lesson-image"]
|
@ -0,0 +1,19 @@
|
||||
== La Pestaña de Elementos
|
||||
|
||||
La pestaña de Elementos te permite examinar el código HTML y CSS utilizado para definir y estilizar el sitio web.
|
||||
|
||||
=== Fuente HTML
|
||||
|
||||
Si pasas el ratón sobre una línea, verás que una parte del sitio web se vuelve azul. Eso significa que
|
||||
esta línea HTML en particular define esta sección del sitio web.
|
||||
La pestaña de Elementos te permite realizar cambios en cada elemento HTML individual. Por ejemplo, si haces clic dentro de una etiqueta de párrafo (<p>...</p>), puedes editar el contenido del sitio web. Si has realizado cambios y luego haces clic en Enter,
|
||||
Chrome actualizará el sitio web para mostrar tus ediciones. También puedes cambiar la etiqueta HTML utilizada, las clases y los identificadores (id) que una etiqueta tiene, y mucho más.
|
||||
|
||||
image::images/ChromeDev_Elements.jpg[DeveloperToolsElements,500,350,style="lesson-image"]
|
||||
|
||||
=== Fuente CSS
|
||||
|
||||
Puedes encontrar información sobre el CSS utilizado para estilizar el sitio web debajo de la fuente HTML. Al igual que con el HTML, también puedes editar el CSS y, por lo tanto, ajustar el estilo del sitio web.
|
||||
Puedes editar valores específicos o desactivar el estilo individual.
|
||||
|
||||
image::images/ChromeDev_Elements_CSS.jpg[DeveloperToolsElementsCSS,500,350,style="lesson-image"]
|
@ -0,0 +1,17 @@
|
||||
== Herramientas de Desarrollo de Google Chrome
|
||||
|
||||
Para completar ciertas tareas, a veces es necesario examinar el código fuente de JavaScript o ejecutar un comando de JavaScript por tu cuenta.
|
||||
Para hacer eso, Google Chrome tiene un conjunto de herramientas que te permiten hacer eso y mucho más.
|
||||
Aunque estas herramientas no son exclusivas de Google Chrome, casi todos los navegadores modernos tienen un conjunto propio.
|
||||
Nuestra introducción se centrará en las que se encuentran en Google Chrome.
|
||||
Sin embargo, aún puedes utilizar el navegador que prefieras, como Firefox o Safari, aunque algunos pasos de este tutorial pueden ser diferentes para ti.
|
||||
|
||||
Ten en cuenta que este tutorial no está diseñado para enseñar todo sobre estas herramientas.
|
||||
Se centrará únicamente en los conocimientos esenciales para completar tareas específicas.
|
||||
Además, si ya estás familiarizado con estas herramientas, puedes saltar estas lecciones sin problema.
|
||||
|
||||
Para comenzar: *abre las herramientas de desarrollo*. Hay varias formas de abrirlas:
|
||||
|
||||
1. Haz clic derecho en cualquier parte de la ventana del navegador y selecciona la opción _"Inspeccionar"_.
|
||||
2. Ve al menú del navegador (tres puntos en la esquina superior derecha), luego ve a _"Más herramientas"_ y selecciona la opción _"Herramientas de desarrollo"_.
|
||||
3. Utiliza el atajo de teclado _Ctrl + Shift + I_.
|
@ -0,0 +1,15 @@
|
||||
== La pestaña de Fuentes
|
||||
|
||||
En la pestaña de Fuentes, puedes examinar el sistema de archivos y ver todos los archivos HTML, CSS y JavaScript utilizados para
|
||||
crear el sitio web. Haz clic en un archivo para ver su contenido.
|
||||
|
||||
image::images/ChromeDev_Sources.jpg[DeveloperToolsSources,400,500,style="lesson-image"]
|
||||
|
||||
== La pestaña de Red
|
||||
|
||||
En la pestaña de Red, puedes ver las solicitudes HTTP y las respuestas que ha realizado el sitio web.
|
||||
Simplemente haz clic en una si deseas obtener información más detallada sobre una solicitud específica.
|
||||
La "Línea de tiempo" sobre los puntos azules representa cuándo se realizaron estas solicitudes y respuestas.
|
||||
También puedes ver las solicitudes realizadas en un marco de tiempo específico simplemente haciendo clic y arrastrando en la línea de tiempo. La ventana inferior solo mostrará las solicitudes y respuestas realizadas en ese marco de tiempo.
|
||||
|
||||
image::images/ChromeDev_Network.jpg[DeveloperToolsNetwork,400,500,style="lesson-image"]
|
@ -0,0 +1,19 @@
|
||||
== ¿Qué es WebGoat?
|
||||
---
|
||||
|
||||
¡Bienvenido `username:user[]`!
|
||||
|
||||
WebGoat es una aplicación deliberadamente insegura que permite a desarrolladores interesados como tú _probar vulnerabilidades_
|
||||
comúnmente encontradas en aplicaciones basadas en Java que utilizan componentes de código abierto comunes y populares.
|
||||
|
||||
Contiene lecciones, ejercicios y desafíos (Challenges). Las lecciones están divididas en varias categorías y contienen páginas con información y ejercicios. Deberías intentar los desafíos al final. Estos son complicados y no contienen ninguna pista.
|
||||
|
||||
El objetivo de WebGoat es aprender y experimentar de manera lúdica en el campo de la seguridad web. Es adecuado tanto para desarrolladores como para _testers_.
|
||||
|
||||
No dudes en someter a WebGoat a una prueba exhaustiva y mejorar tus conocimientos y experiencia en este campo.
|
||||
|
||||
Deberías intentar resolver los ejercicios de WebGoat con una mentalidad de hacking.
|
||||
|
||||
¡Gracias por tu interés!
|
||||
|
||||
*The WebGoat Team*
|
@ -115,6 +115,11 @@
|
||||
<img th:src="@{${'/css/img/nllang.svg'}}" alt="Nederlands" height="20"></img> Nederlands
|
||||
</a>
|
||||
</li>
|
||||
<li role="presentation">
|
||||
<a role="menuitem" th:href="@{/start.mvc?lang=es#lesson/WebGoatIntroduction.lesson}">
|
||||
<img th:src="@{${'/css/img/eslang.svg'}}" alt="Spanish" height="20"></img> Español
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
Loading…
x
Reference in New Issue
Block a user