Guía RPS PicoCTF: análisis y explotación del reto Rock Paper Scissors en C explicada en claro

Resumen del reto y vulnerabilidad encontrada: se trata de un programa en C que implementa un juego de piedra papel tijeras donde la función play determina la jugada del ordenador y usa la función strstr para comprobar si la entrada del jugador contiene la cadena que vence a la jugada del ordenador. Por ejemplo, si el ordenador elige rock, el programa comprueba si la entrada del jugador contiene paper, y si strstr encuentra esa subcadena el programa considera que el jugador ha ganado. Esta lógica permite bypasses fáciles al aceptar entradas que incluyan paper dentro de una cadena mayor como rockpaperscissors o paperXYZ.

Cómo se explotó en PicoCTF: el participante leyó el código fuente, vio que la comprobación usaba strstr en lugar de comparar exactamente la entrada, y envió repetidamente entradas que incluían paper para acumular victorias consecutivas hasta alcanzar el umbral de cinco victorias y obtener la bandera. Además el programa inicializa el generador de aleatoriedad con srand(time(0)) en cada ejecución, lo que no ayuda a mejorar la seguridad del flujo del juego en un entorno controlado.

Lecciones de seguridad y mitigaciones: evitar usar strstr para validar jugadas o acciones críticas; en su lugar usar comparaciones exactas como strcmp o normalizar y validar la entrada con listas blancas. Limitar la longitud de entrada, sanear datos, comprobar límites de buffer y no sembrar el generador de números pseudoaleatorios dentro de una función llamada cada vez que se juega. Para retos y sistemas reales conviene aplicar pruebas de caja negra y pentesting para detectar estos fallos lógicos.

Si te interesa aprender más sobre defensa y auditoría de aplicaciones, en Q2BSTUDIO ofrecemos servicios de ciberseguridad y pentesting y podemos ayudarte a reforzar tus aplicaciones a medida. Nuestros especialistas diseñan software a medida seguro y realizan auditorías que identifican vulnerabilidades lógicas como la mostrada en este reto, además de ofrecer soluciones de protección y respuesta.

Servicios y capacidades destacadas: aplicaciones a medida, software a medida, inteligencia artificial aplicada a la protección y automatización, servicios cloud aws y azure, servicios inteligencia de negocio y consultoría en power bi. Si necesitas una evaluación de seguridad o desarrollar una solución a medida con enfoque en seguridad, revisa nuestros servicios de servicios de ciberseguridad y pentesting y nuestras soluciones de inteligencia artificial para empresas.

Conclusión práctica: en competiciones como PicoCTF la lectura atenta del código y el conocimiento de funciones estándar como strstr permiten descubrir vectores de explotación por concatenación de cadenas. En entornos productivos, aplicar buenas prácticas de validación y contar con equipos especializados en ciberseguridad e inteligencia artificial ayuda a mitigar riesgos y a construir sistemas más robustos.