
Strumento di test di sicurezza automatizzato per Salesforce Experience Cloud che rileva applicazioni Aura configurate in modo errato, record accessibili e funzionalità non autorizzate da contesti ospiti e autenticati.
Questo non è un prodotto ufficialmente supportato da Google. Questo progetto non è idoneo per il Programma di ricompense per vulnerabilità del software open source di Google.
aura-inspector è un coltellino svizzero per il testing di Salesforce Experience Cloud. Facilita la scoperta di applicazioni Salesforce Experience Cloud malconfigurate e automatizza gran parte del processo di test. Per maggiori informazioni, fare riferimento al post del blog di Mandiant: Auditing Salesforce Aura Data Exposure.
Alcune delle sue funzionalità includono:
Lo strumento può essere installato con pipx utilizzando il comando seguente.
pipx install git+<URL>
Lo strumento richiede Python 3 per funzionare e pip per scaricare le dipendenze. Si consiglia di creare un ambiente virtuale per installare le dipendenze.
git clone <URL>
cd aura-inspector
virtualenv env
source ./env/bin/activate
pip3 install -r requirements.txt
Il menu di aiuto può essere invocato utilizzando il flag -h, che fornisce un elenco di configurazioni.
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
Lo strumento offre una varietà di opzioni che possono essere utili in diversi scenari. I seguenti coprono alcune situazioni diverse.
Utilizzare lo strumento nella configurazione standard è semplice come eseguire il seguente comando. Eseguirà tutti i controlli in modo non autenticato e restituirà ciò che è accessibile dalla prospettiva di un utente Guest.
python3 aura_cli.py -u <URL>
L'output rivelerà anche se esiste una funzionalità di auto-registrazione che è possibile utilizzare per creare un account. Se hai l'opportunità di registrarti sull'istanza, eseguire lo strumento da un contesto autenticato probabilmente produrrà più risultati.
Per eseguire lo strumento in un contesto autenticato, fornisci il cookie SID utilizzando il parametro -c o lascia che lo strumento lo analizzi insieme ad altri parametri fornendo un file con il contenuto di una richiesta arbitraria all'endpoint aura in una sessione autenticata.
python3 aura_cli.py -r <AURA_REQUEST_FILE>
Una singola istanza può ospitare più app personalizzate. Questo può essere tipicamente identificato se vedi qualcosa come /<custom-app-name>/s nel percorso. In tal caso, si consiglia di trovare tutte le app e specificarle utilizzando il parametro --app, poiché l'output potrebbe differire significativamente. Si consiglia anche di provare a eseguire lo strumento contro l'app predefinita "/" se ci sono app personalizzate ospitate sull'istanza.