Por qué importa
La mayor parte del trabajo sensible de una aplicación sucede en parámetros que el usuario nunca ve en la barra de direcciones. Los cuerpos POST y PUT transportan IDs, flags, claves de API y nombres de acción y, como no aparecen en la URL, los desarrolladores suelen validarlos con menos rigor. Ese hueco es justo donde la manipulación de parámetros encuentra bugs.
La manipulación rara vez es un solo bug. Es una sonda. Un único valor modificado puede revelar una divulgación de información, una inyección SQL, un IDOR o una vulnerabilidad de lógica de negocio, y por eso es uno de los hábitos de mayor valor que puede construir quien audita. Además no requiere ninguna herramienta especial más allá de un proxy de interceptación como Burp Suite, lo que la convierte en una de las primeras destrezas que un principiante puede transformar en hallazgos reales.
Dónde viven los parámetros
Una aplicación envía parámetros al servidor en varios lugares, y cada uno es editable con un proxy:
- Cadena de consulta de la URL:
?page=1&sort=price, visible en la barra de direcciones. - Cuerpo POST y PUT: valores codificados de formulario o en JSON, ocultos a la URL y a menudo validados a la ligera.
- Cookies y cabeceras: estado de sesión, roles, flags de funcionalidades y pistas de IP, todo controlado por el atacante.
Cómo funciona
Quien audita captura una petición, cambia un parámetro cada vez, la reenvía y lee la respuesta en crudo. La disciplina consiste en cambiar una sola cosa por petición, de modo que la causa de cualquier cambio de comportamiento sea inequívoca. Las sondas varían según el tipo de dato:
- Valores numéricos: prueba una comilla simple, un número negativo, un cero, un número muy grande y el ID de otro usuario. Una comilla simple que produce un error de base de datos apunta a inyección SQL; que vuelvan los datos de otro usuario apunta a IDOR.
- Flags booleanos: invierte
isAdmin=falseatrue,verified=noayes, o elimina el parámetro por completo para ver si el servidor recurre a un valor por defecto inseguro. - Campos de precio y cantidad: rebaja un precio, fija una cantidad negativa o cambia una moneda para probar la lógica de la compra.
- Cadenas: prueba comillas, barras invertidas, bytes nulos y secuencias de path traversal como
../../etc/passwd.
Impacto en el mundo real
La manipulación de parámetros ha producido de todo, desde compras gratuitas a través de un campo price manipulado, hasta tomas de control de cuentas mediante un ID de usuario intercambiado, pasando por la extracción completa de una base de datos que empezó con una comilla en un parámetro numérico. Como ataca la confianza más que una tecnología concreta, aparece por igual en aplicaciones web clásicas, en aplicaciones modernas de una sola página y en APIs.
Prevención
Trata cada parámetro como hostil. Usa consultas parametrizadas para prevenir la inyección, impón autorización a nivel de objeto en cada referencia, recalcula precios y totales del lado del servidor y rechaza los campos inesperados en lugar de asignarlos automáticamente. Cuando un valor deba sobrevivir a un viaje de ida y vuelta por el cliente, fírmalo o cífralo para que la manipulación sea detectable, y registra anomalías como precios negativos o accesos que cruzan los límites entre usuarios.
Cómo enseñamos Manipulación de parámetros
En nuestro Cybersecurity Bootcamp, no solo aprenderás sobre Manipulación de parámetros en teoría. Practicarás con herramientas reales en laboratorios prácticos, guiado por profesionales de la industria que usan estos conceptos a diario.
Cubierto en:
Módulo 10: Pentesting y Hacking Ético
360+ horas de formación experta • CompTIA Security+ incluido