
Fragmentos vulnerables de Twitter
Vulnerabilidades | Lenguajes de programación | Ejecutar un fragmento de código vulnerable | Instalación | Actualización
YesWeHack presenta fragmentos de código que contienen varias vulnerabilidades diferentes para practicar tu análisis de código en un entorno dockerizado seguro. Los fragmentos de código vulnerables son adecuados para todos los niveles de habilidad.
~ ¡Nuevo fragmento de código vulnerable en Twitter @yeswehack todos los viernes! 🗒
Si quieres ver algo especial o si simplemente tienes una idea sobre un fragmento de código vulnerable, no dudes en crear una «New Issue» donde expliques tu idea; ninguna idea es estúpida.
⚠️ Ten en cuenta
¡Asegúrate de ejecutar esto en un entorno seguro, ya que el código es vulnerable y está diseñado para aprender análisis de código! Por defecto, todos los fragmentos de código vulnerables incluyen una configuración de Docker que aísla el código de tu sistema anfitrión y lo hace seguro de ejecutar (lee más en la sección: «Ejecutar un fragmento de código vulnerable»).
Una colección de todos los fragmentos de código vulnerables publicados en nuestro Twitter 📂
También incluido
En cada carpeta de fragmento de código vulnerable (Vsnippet) hay un archivo docker-compose.yml. Para iniciar un Vsnippet en un entorno Docker aislado, simplemente ejecuta el siguiente comando:
docker compose up --build
o
docker-compose up --build
git clone https://github.com/yeswehack/vulnerable-code-snippets.git
Para obtener los fragmentos de código vulnerables más recientes, ejecuta:
git pull
~ ¿H4s 3nc0ntr4d0 3l hu3v0 d3 P4scu4 y4? 🐇🪺
Si tienes preguntas, necesitas ayuda o has descubierto un problema con el código, contáctanos en Twitter: @yeswehack 📬
| ID | Vulnerabilidad | Descripción |
|---|
| 📜#1 | SQLi & XSS | Colisión del filtro de barra invertida |
| 📜#2 | Acceso inadecuado a archivos y XSS | Carácter no válido y verificación de regex |
| 📜#3 | Inyección de Log Forging, Path traversal e inyección de código | Filtro deficiente y manejo inadecuado de include() |
| 📜#4 | XSS | Filtro de entrada de usuario no válido |
| 📜#5 | SSRF y autorización rota | Entrada de usuario de confianza e IP de cliente desde la cabecera |
| 📜#6 | SSTI | Formato de entrada mixto |
| 📜#7 | SQLi | Uso de una variable no válida dentro de una sentencia |
| 📜#8 | CSRF | No se incluye token CSRF |
| 📜#9 | Open Redirect | Manejador de regex no válido |
| 📜#10 | DOM XSS | El filtro del backend colisiona con JavaScript del lado del cliente |
| 📜#11 | CORS | Cabecera Access-Control-Allow mal configurada |
| 📜#12 | CSRF/ClickJacking | CSRF mediante petición GET con proceso de borrado inseguro / ClickJacking: X-Frame-Options establecida en una etiqueta meta de HTML |
| 📜#13 | Path Traversal / Subida de archivos sin restricciones | Una protección deficiente contra Path Traversal y en la subida de archivos resulta en una inyección de código |
| 📜#14 | DOS | Manejador de operador incorrecto en el bucle for |
| 📜#15 | Mecanismo débil de recuperación de contraseña olvidada | Hash débil para la recuperación de contraseña |
| 📜#16 | IDOR | Una sentencia if insegura conduce a un control de acceso inadecuado |
| 📜#17 | Deserialización insegura | Ejecuta entrada de usuario de confianza dentro de la función loads() de pickle |
| 📜#18 | Path Traversal | Validación inadecuada del nombre de archivo del usuario |
| 📜#19 | Open Redirect | Manejo no válido de la entrada controlada por el usuario «location.hash» |
| 📜#20 | Inyección SQL | Uso no válido de la función replace(); el carácter solo se reemplaza una vez |
| 📜#21 | DOM XSS mediante PostMessage | Sin validación de origen, lo que conduce a un DOM XSS mediante PostMessage |
| 📜#22 | XSS/OpenRedirect | La protección del filtro no filtra todos los caracteres especiales que pueden usarse para explotar las vulnerabilidades |
| 📜#23 | Desbordamiento de búfer | Toma la entrada STDIN del usuario con la función gets() sin comprobar el tamaño del búfer |
| 📜#24 | Inyección SQL | Uso incorrecto de la función PHP addslashes() |
| 📜#25 | XSS: bypass de CSP | Sin validación de la entrada del usuario junto con un manejo inseguro del nonce |
| 📜#26 | Path Traversal | El filtro proporcionado por la función PHP «preg_replace()» se limita a filtrar solo los primeros 10 caracteres |
| 📜#27 | Envenenamiento de caché web | La cabecera HTTP Referer se refleja en el cuerpo de la respuesta cacheada sin ser filtrada |
| 📜#28 | Vulnerabilidad de lógica de negocio | Un atacante puede retirar cantidades negativas para aumentar el saldo total de su cuenta |
| 📜#29 | IDOR | Un atacante puede obtener acceso a datos sensibles de otros usuarios realizando un ataque de Forced browsing |
| 📜#30 | Deserialización insegura | Uso de una función peligrosa (exec) que puede ser controlada por el usuario, resultando en un RCE |
| 📜#31 | LFI | No hay un escape de caracteres adecuado ni verificación de filtro. La función include() ejecuta todo el código PHP del archivo indicado, sin importar la extensión del archivo, lo que resulta en una inyección de código |
| 📜#32 | ¡Inyección de formato! | Formatea una cadena que contiene valores proporcionados por el cliente, lo que resulta en una inyección de formato |
| 📜#33 | Inyección SQL (segundo orden) | Todas las consultas SQL usan sentencias preparadas excepto la última. Esta sentencia extrae de la base de datos un valor que en su momento fue controlado por el usuario y lo añade a la consulta SQL, lo que conduce a una inyección SQL de segundo orden |
| 📜#34 | Denegación de servicio por expresión regular (ReDoS) | Patrón de regex mal configurado utilizado para filtrar la entrada controlada por el usuario |
| 📜#35 | XSS | Entrada de usuario de confianza en el parámetro GET |
| 📜#36 | Subida de archivos sin restricciones | Validación insuficiente de la extensión del archivo subido y validación omitida del contenido del archivo |
| 📜#37 | SSRF | Manejo inseguro de la cabecera de proxy X-Forwarded-Host y de cURL, lo que conduce a un SSRF completo |
| 📜#38 | Inyección de código | El usuario puede escribir contenido personalizado en un archivo seleccionado que luego se ejecuta en el sistema vulnerable |
| 📜#39 | LFI | La explotación de un LFI permite ejecutar la herramienta pearcmd, lo que resulta en una ejecución remota de código |
| 📜#40 | Subida de archivos sin restricciones | La extensión php3 puede usarse para ejecutar código PHP debido a la configuración del proxy Apache. |
| 📜#41 | Inyección de comandos | El uso incorrecto de escapeshellcmd conduce a una vulnerabilidad de inyección de comandos |
| 📜#42 | Inyección de comandos | No se realiza ninguna validación de la entrada del usuario, lo que conduce a una vulnerabilidad de inyección de comandos |
| 📜#43 | SSTI | Uso inadecuado del motor de plantillas que conduce a un SSTI y esto resulta en un RCE |