
Outil de test de sécurité automatisé pour Salesforce Experience Cloud qui découvre les applications Aura mal configurées, les enregistrements accessibles et les fonctionnalités non autorisées à partir de contextes invité et authentifié.
Ceci n'est pas un produit officiellement supporté par Google. Ce projet n'est pas éligible au Programme de récompenses pour les vulnérabilités des logiciels open source de Google.
aura-inspector est un couteau suisse pour les tests Salesforce Experience Cloud. Il facilite la découverte d'applications Salesforce Experience Cloud mal configurées et automatise une grande partie du processus de test. Pour plus d'informations, veuillez consulter l'article de blog Mandiant : Auditing Salesforce Aura Data Exposure.
Certaines de ses fonctionnalités incluent :
L'outil peut être installé avec pipx en utilisant la commande ci-dessous.
pipx install git+<URL>
L'outil nécessite Python 3 pour fonctionner et pip pour télécharger les dépendances. Nous recommandons de créer un environnement virtuel pour installer les dépendances.
git clone <URL>
cd aura-inspector
virtualenv env
source ./env/bin/activate
pip3 install -r requirements.txt
Le menu d'aide peut être invoqué en utilisant le drapeau -h, qui fournit une liste de configurations.
python3 aura_cli.py -h
usage: python3 aura_cli.py [-h] [-u URL] [-c COOKIES] [-o OUTPUT_DIR] [-l OBJECT_LIST] [-d] [-v] [-p PROXY] [-k] [-a] [--app APP] [--aura AURA] [--context CONTEXT] [--token TOKEN] [--no-gql] [-r AURA_REQUEST_FILE]
options:
-h, --help show this help message and exit
-u, --url URL Root URL of Salesforce application to audit
-c, --cookies COOKIES
Cookies after authenticating to Salesforce application
-o, --output-dir OUTPUT_DIR
Output directory
-l, --object-list OBJECT_LIST
Pull records only the provided objects. Comma separated list of objects.
-d, --debug Print debug information
-v, --verbose Print verbose information
-p, --proxy PROXY Proxy requests
-k, --insecure Ignore invalid TLS certificates
--app APP Provide the target salesforce app's path (e.g: /myApp), the script will try to detect it if not provided
--aura AURA Provide the target salesforce aura's path (e.g: /aura), the script will try to detect it if not provided
--context CONTEXT Provide a context to be used as aura.context in POST requests, the script will use a dummy one if not provided
--token TOKEN Provide an aura token to be used as aura.token in POST requests, the script will use a dummy one if not provided
--no-gql Do not check for GraphQL capability and do not use it
--no-banner Do not display banner
-r, --aura-request-file AURA_REQUEST_FILE
Provide a request file to an /aura endpoint
L'outil offre une variété d'options qui peuvent être utiles dans différents scénarios. Les sections suivantes couvrent quelques situations différentes.
Utiliser l'outil dans la configuration standard est aussi simple que d'exécuter la commande suivante. Cela exécutera toutes les vérifications de manière non authentifiée et retournera ce qui est accessible du point de vue d'un utilisateur Invité.
python3 aura_cli.py -u <URL>
La sortie révélera également s'il existe une fonctionnalité d'auto-inscription que vous pouvez utiliser pour créer un compte. Si vous avez l'opportunité de vous inscrire sur l'instance, exécuter l'outil depuis un contexte authentifié donnera probablement plus de résultats.
Pour exécuter l'outil dans un contexte authentifié, soit fournissez le cookie SID en utilisant le paramètre -c, soit laissez l'outil analyser ce paramètre et d'autres pour vous en fournissant un fichier contenant le contenu d'une requête arbitraire vers le point de terminaison aura dans une session authentifiée.
python3 aura_cli.py -r <AURA_REQUEST_FILE>
Une seule instance peut héberger plusieurs applications personnalisées. Cela peut généralement être identifié si vous voyez quelque chose comme /<custom-app-name>/s dans le chemin. Si c'est le cas, nous recommandons de trouver toutes les applications et de les spécifier en utilisant le paramètre --app, car la sortie peut différer considérablement. Il est également conseillé d'essayer d'exécuter l'outil contre l'application par défaut "/" s'il y a des applications personnalisées hébergées sur l'instance.