POLITICA DE COOKIES

Q2BSTUDIO.COM utiliza cookies técnicas, analíticas, de sesión y de publicidad con la finalidad de prestar un mejor servicio. No obstante, necesitamos su consentimiento explícito para poder utilizarlas. Así mismo puede cambiar la configuración de las cookies u obtener más información aquí .

RPS PicoCTF Guía

Guía PicoCTF RPS: análisis y explotación del reto Piedra, Papel o Tijeras en C explicado con claridad

Publicado el 21/09/2025

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.

Fin del artículo, inicio de la diversión
Construyendo software juntos

Dando vida a tus ideas desde 2008

Diseñamos aplicaciones móviles y de escritorio innovadoras que cumplen con tus requisitos específicos y mejoran la eficiencia operativa.
Más info
Cuéntanos tu visión
Sea cual sea el alcance, podemos convertir tu idea en realidad. Envíanosla y charlemos sobre tu proyecto o una colaboración futura.
Contáctanos
artículos destacados
Live Chat
Enviado correctamente.

Gracias por confiar en Q2BStudio